精华内容
下载资源
问答
  • Qt界面布局

    2019-07-02 17:19:58
    界面布局->实现一个登陆窗口 选取label显示账号、密码的汉字提示。 选取line Edit用来填写账号、密码内容。 选取push Button制作登录、退出选项。 选取widget,将label和line Edit放入其中并选择水平布局。 ...

    界面布局->实现一个登陆窗口

    1. 选取label显示账号、密码的汉字提示。
    2. 选取line Edit用来填写账号、密码内容。
    3. 选取push Button制作登录、退出选项。
    4. 选取widget,将label和line Edit放入其中并选择水平布局。
    5. 选取widget,将label和line Edit放入其中并选择水平布局。
    6. 整个选中,栏删布局,可以上下左右对齐四个或多个部件。
    7. 选中widget,属性中垂直策略选取fixed,可以减小边框。
    8. 不希望主窗口扩大缩小时,在窗口的属性中,长度和宽度固定数值,例如X:350,Y:240。
    9. widget边距,通过layoutLeftMargin/Top/Right/Bottom更改。
    10. 创建lineEdit默认是明文的,要是需要影藏,选中lineEdit属性->echoMode->NoEcho/Password。

    展开全文
  • Qt界面布局管理详解

    2020-12-24 12:35:29
    本节再以一个稍微复杂的例子来讲解设计 GUI 的常见功能,包括界面设计时布局的管理,以及程序里如何访问界面组件。 实例程序功能 创建一个 Widget Application 项目 samp2_2,在创建窗体时选择基类 QDialog,生成...

    在上一节,通过一个简单的应用程序,分析了 Qt 创建的 GUI 应用程序中各个文件的作用,剖析了可视化设计的UI文件是如何被转换为 C++ 的类定义,并自动创建界面的。这些是使用 Qt Creator 可视化设计用户界面,并使各个部分融合起来运行的基本原理。

    本节再以一个稍微复杂的例子来讲解设计 GUI 的常见功能,包括界面设计时布局的管理,以及程序里如何访问界面组件。

    实例程序功能

    创建一个 Widget Application 项目 samp2_2,在创建窗体时选择基类 QDialog,生成的类命名为 QWDialog,并选择生成窗体。

    如此新建的项目 samp2_2 有一个界面文件 qwdialog.ui,一个头文件 qwdialog.h 和源程序文件 qwdialog.cpp。此外,还有项目文件 samp2_2.pro 和主程序文件 main.cpp。

    qwdialog.ui 界面文件设计时界面如图 1 所示。程序的主要功能是对中间一个文本框的文字字体样式和颜色进行设置。


    实例程序 samp2_2 设计时界面
    图 1 实例程序 samp2_2 设计时界面


    在界面设计时,对需要访问的组件修改其 objectName,如各个按钮、需要读取输入的编辑框、需要显示结果的标签等,以便在程序里区分。对于不需要程序访问的组件则无需修改其 objectName,如用于界面上组件分组的 GroupBox、Frame、布局等,让 UI 设计器自动命名即可。

    对图 1 中几个主要组件的命名、属性设置见表 2。
     

    表 2 qwdialog.ui 中各个组件的相关设置
    对象名 类名称 属性设置 备注
    txtEdit  QPlainTextEdit Text="Hello, World
    It is my demo. "
    Font.PointSize=20
    用于显示文字内容,可编辑
    chkBoxUnder  QCheckBox  Text="Underline" 设置字体为下划线
    chkBoxItalic  QCheckBox  Text="Italic" 设置字体为斜体
    chkBoxBold  QCheckBox  Text="Bold" 设置字体为粗体
    rBtnBlack  QRadioButton  Text="Black" 字体颜色为黑色
    rBtnRed  QRadioButton  Text="Red" 字体颜色为红色
    rBtnBlue  QRadioButton  Text="Blue" 字体颜色为蓝色
    btnOK  QPushButton  Text="确定" 返回确定,并关闭窗口
    btnCancel  QPushButton  Text="取消"  返回取消,并关闭窗口
    btnClose  QPushButton  Text="退出" 退出程序
    QWDialog  QWDialog  windowTitle="Dialog by Designer" 界面窗口的类名称是QWDialog,objectName 不要修改


    对于界面组件的属性设置,需要注意以下几点。

    1. objectName 是窗体上创建的组件的实例名称,界面上的每个组件需要有一个唯一的 objectName,程序里访问界面组件时都是通过其 objectName 进行访问,自动生成的槽函数名称里也有 objectName。所以,组件的 objectName 需要在设计程序之前设置好,设置好之后一般不要再改动。若设计程序之后再改动 objectName,涉及的代码需要相应的改动。
    2. 窗体的 objectName 就是窗体的类名称,在 UI 设计器里不要修改窗体的 objectName,窗体的实例名称需要在使用窗体的代码里去定义。

    界面组件布局

    Qt 的界面设计使用了布局(Layout)功能。所谓布局,就是界面上组件的排列方式,使用布局可以使组件有规则地分布,并且随着窗体大小变化自动地调整大小和相对位置。布局管理是 GUI 设计的必备技巧,下面逐步讲解如何实现图 1 所示的界面设计。

    界面组件的层次关系

    为了将界面上的各个组件的分布设计得更加美观,经常使用一些容器类,如 QgoupBox、QtabWidget、QFrame 等。

    例如,将 3 个 CheckBox 组件放置在一个 GroupBox 组件里,该 GroupBox 组件就是这 3 个 CheckBox 的容器,移动这个 GroupBox 就会同时移动其中的 3 个 CheckBox。


    界面组件的放置及层次关系
    图 3 界面组件的放置及层次关系


    图 3 显示的是设计图 1 界面的前期阶段。在窗体上放置了 2 个 GroupBox 组件,在 groupBox1 里放置 3 个 CheckBox 组件,在 groupBox2 里放置 3 个 RadioButton 组件。图 3 右侧 Object Inspector 里显示了界面上各组件之间的层次关系。

    布局管理

    Qt 为界面设计提供了丰富的布局管理功能,在 UI 设计器中,组件面板里有 Layouts 和 Spacers 两个组件面板,在窗体上方的工具栏里有布局管理的按钮(如图 4 所示)。


    用于布局可视化设计的组件面板和工具栏
    图 4 用于布局可视化设计的组件面板和工具栏


    Layouts 和 Spacers 两个组件面板里的布局组件的功能见表 5:
     

    表 5 组件面板上用于布局的组件
    布局组件 功能
    Vertical Layout 垂直方向布局,组件自动在垂直方向上分布
    Horizontal Layout 水平方向布局,组件自动在水平方向上分布
    Grid Layout 网格状布局,网状布局大小改变时,每个网格的大小都改变
    Form Layout 窗体布局,与网格状布局类似,但是只有最右侧的一列网格会改变大小
    Horizontal Spacer 一个用于水平分隔的空格
    Vertical Spacer 一个用于垂直分隔的空格


    使用组件面板里的布局组件设计布局时,先拖放一个布局组件到窗体上,如在设计图 4 中 3 个按钮的布局时,先放一个 Horizontal Layout 到窗体上,布局组件会以红色边框显示。再往布局组件里拖放 3 个 Push Button 和 2 个 Horizontal Spacer,就可以得到图 1 中 3 个按钮的水平布局效果。

    在设计窗体的上方有一个工具栏,用于调整设计器进入不同的状态,以及进行布局设计,工具栏上各按钮的功能见表 6。
     

    表 6 UI设计器工具栏各按钮的功能
    按钮及快捷键 功能
    Edit Widget (F3) 界面设计进入编辑状态,就是正常的设计状态
    Edit Signals/Slots(F4)  进入信号与槽的可视化设计状态
    Edit Buddies 进入伙伴关系编辑状态,可以设置一个Label 与一个组件成为伙伴关系
    Edit Tab Order 进入Tab 顺序编辑状态,Tab 顺序是在键盘上按Tab 键时,输入焦点在界面各组件之间跳动的顺序
    Lay Out Horizontally (Ctrl+H) 将窗体上所选组件水平布局
    Lay Out Vertically (Ctrl+L)  将窗体上所选组件垂直布局
    Lay Out Horizontally in Splitter 将窗体上所选组件用一个分割条进行水平分割布局
    Lay Out Vertically in Splitter 将窗体上所选组件用一个分割条进行垂直分割布局
    Lay Out in a Form Layout 将窗体上所选组件按窗体布局
    Lay Out in a Grid 将窗体上所选组件网格布局
    Break Layout 解除窗体上所选组件的布局,也就是打散现有的布局
    Adjust Size(Ctrl+J) 自动调整所选组件的大小


    使用工具栏上的布局控制按钮时,只需在窗体上选中需要设计布局的组件,然后点击某个布局按钮即可。在窗体上选择组件时同时按住 Ctrl 键,可以实现组件多选,选择某个容器类组件,相当于选择了其内部的所有组件。

    例如,在图 3 的界面中,选中 groupBox1,然后单击“Lay Out Horizontally”工具栏按钮,就可以对 groupBox1 内的 3 个 CheckBox 水平布局。

    在图 4 的界面上,使 groupBox1 里的 3 个 CheckBox 水平布局,groupBox2 里的 3 个 RadioButton 水平布局,下方 3个按钮水平布局。在窗体上又放置了一个 PlainTextEdit 组件。现在,改变 groupBox1、groupBox2 或按钮的水平布局的大小,其内部组件都会自动改变大小。但是当改变窗体大小时,界面上的各组件却并不会自动改变大小。

    随后还需为窗体指定一个总的布局。选中窗体(即不要选择任何组件),单击工具栏上的“Lay Out Vertically”按钮,使 4 个组件垂直分布。这样布局后,当窗体大小改变时,各个组件都会自动改变大小。

    在 UI 设计器里可视化设计布局时,要善于利用水平和垂直空格组件,善于设置组件的最大、最小宽度和高度来实现某些需要的布局效果。

    伙伴关系与 Tab 顺序

    在 UI 设计工具栏上单击“Edit Buddies”按钮可以进入伙伴关系编辑状态,如设计一个窗体时,进入伙伴编辑状态之后的界面如图 7 所示。


    编辑伙伴关系
    图 7 编辑伙伴关系


    伙伴关系(Buddy)是指界面上一个 Label 和一个组件相关联,如图 7 中的伙伴关系编辑状态,单击一个 Label,按住鼠标左键,然后拖向一个组件,就建立了 Label 和组件之间的伙伴关系。

    伙伴关系是为了在程序运行时,在窗体上用快捷键快速将输入焦点切换到某个组件上。例如,在图 7 的界面上,设定“姓名”标签的 Text 属性为“姓名(&N)”,其中符号“&”用来指定快捷字符,界面上并不显示“&”,这里指定快捷字母为 N。那么程序运行时,用户按下 Alt+N,输入焦点就会快速切换到“姓名”关联的输入框内。


    Tab 顺序编辑状态
    图 8 Tab 顺序编辑状态


    在 UI 设计器工具栏上单击“Edit Tab Order”按钮进入Tab 顺序编辑状态(如图 8 所示)。Tab 顺序是指在程序运行时,按下键盘上的 Tab 键时输入焦点的移动顺序。一个好的用户界面,在按 Tab 键时,焦点应该以合理的顺序在界面上移动,而不是随意地移动。

    进入 Tab 顺序编辑状态后,在界面上会显示具有 Tab 顺序组件的编号,依次按希望的顺序单击组件,就可以重排 Tab 顺序了。没有输入焦点的组件是没有 Tab 顺序的,如 Label 组件。

    项目功能实现

    下面开始设计程序功能。对于该程序,希望它的功能如下:

    1. 单击 UnderLine、Italic、Bold 3 个 CheckBox 时,根据其状态,设置 PlainTextEdit 里的文字的字体样式;
    2. Black、Red、Blue 3 个 RadioButton 是互斥选择的,单击某个 RadioButton 时,设置文字的颜色;
    3. 单击“确定”“取消”或“退出”按钮时,关闭窗口,退出程序。

    字体样式设置

    窗体在设计模式下,选中 chkBoxUnder 组件,单击右键调出其快捷菜单。在快捷菜单中单击菜单项“Go to slot…”(中文状态为“转到槽”),出现如图 9 所示的对话框。


    QcheckBox的Go to slot对话框
    图 9 QcheckBox的Go to slot对话框


    该对话框列出了 QCheckBox 类的所有信号,第一个是 clicked(),第二个是带一个布尔类型参数的 clicked(bool)。

    信号 clicked(bool) 会将 CheckBox 组件当前的选择状态作为一个参数传递,在响应代码里可以直接利用这个传递的参数。而如果用信号 clicked(),则需要在代码里读取 CheckBox 组件的选中状态。为了简化代码,选择 clicked(bool) 信号。

    选择 clicked(bool),然后单击“OK”按钮,在 QWDialog 的类定义中,会在 private slots 部分自动增加一个槽函数声明,函数名是根据发射对象及其信号名称自动命名的。

    void on_chkBoxUnder_clicked(bool checked);

    同时,在 qwdialog.cpp 文件中自动添加了函数 on_chkBoxUnder_clicked(bool) 的框架,在此函数中添加如下的代码,实现文本框字体下划线的控制。

    void QWDialog::on_chkBoxUnder_clicked(bool checked)
    {
        QFont font=ui->txtEdit->font();
        font.setUnderline(checked);
        ui->txtEdit->setFont(font);
    }

    以同样的方法为 Italic 和 Bold 两个 CheckBox设计槽函数,编译后运行,发现已经实现了修改字体的下划线、斜体、粗体属性的功能,说明信号与槽函数已经关联了。

    但是,查看 QWDialog 的构造函数,构造函数只有简单的一条语句。

    QWDialog::QWDialog(QWidget *parent) : QDialog(parent), ui(new Ui::QWDialog)
    {
        ui->setupUi(this);
    }

    这里没有发现用 connect() 函数进行几个 CheckBox 的信号与槽函数关联的操作。这些功能是如何实现的呢?

    查看编译生成的 ui_qwdialog.h 文件。构造函数里调用的 setupUi() 是在 ui_qwdialog.h 文件里实现的。查看 setupUi() 函数的内容,也没有发现用 connect() 函数进行几个 CheckBox 的信号与槽关联的操作,只是在 setupUI()里发现了如下的一条语句:

    QMetaObject::connectSlotsByName(QWDialog);

    秘密就在于这条语句。connectSlotsByName(QWDialog) 函数将搜索 QWDialog 界面上的所有组件,将信号与槽函数匹配的信号和槽关联起来,它假设槽函数的名称是:

    void on_<object name>_<signal name>(<signal parameters>);

    例如,通过 UI 设计器的操作,为 chkBoxUnder 自动生成的槽函数是:

    void on_chkBoxUnder_clicked(bool checked);

    它就正好是 chkBoxUnder 的信号 clicked(bool) 的槽函数。那么,connectSlotsByName() 就会将此信号和槽函数关联起来,如同执行了下面的这样一条语句:

    connect(chkBoxUnder, SIGNAL(clicked (bool)),
    this, SLOT (on_chkBoxUnder_clicked (bool));

    这就是用 UI 设计器可视化设计某个组件的信号响应槽函数,而不用手工去将其关联起来的原因,都是在界面类的构造函数里调用 setupUi() 自动完成了关联。

    字体颜色设置

    设置字体的 3 个 RadioButton 是互斥性选择的,即一次只有一个 RadioButton 被选中,虽然也可以采用可视化设计的方式设计其 clicked() 信号的槽函数,但是这样就需要生成 3 个槽函数。这里可以简化设计,即设计一个槽函数,将 3 个 RadioButton 的 clicked() 信号关联到这一个槽函数。

    为此,在 QWDialog 类的 private slots 部分增加一个槽函数定义如下:

    void setTextFontColor();

    提示 将鼠标光标移动到这个函数的函数名上面,单击右键,在弹出的快捷菜单中选择“Refactor”→“Add Definition in qwdialog.cpp”,就可以在 qwdialog.cpp 文件中自动为函数 setTextFontColor() 生成一个函数框架。

    在 qwdialog.cpp 文件中,为 setTextFontColor() 编写实现代码如下:

    void QWDialog::setTextFontColor()
    {
        QPalette plet=ui->txtEdit->palette();
        if (ui->rBtnBlue->isChecked())
            plet.setColor(QPalette::Text,Qt::blue);
        else if (ui->rBtnRed->isChecked())
           plet.setColor(QPalette::Text,Qt::red);
        else if (ui->rBtnBlack->isChecked())
            plet.setColor(QPalette::Text,Qt::black);
        else
           plet.setColor(QPalette::Text,Qt::black);
        ui->txtEdit->setPalette(plet);
    }

    由于这个槽函数是自定义的,所以不会自动与 RadioButton 的 clicked() 事件关联,此时编译后运行程序不会实现改变字体颜色的功能。需要在 QWDialog 的构造函数中手工进行关联,代码如下:

    QWDialog::QWDialog(QWidget *parent) : QDialog(parent), ui(new Ui::QWDialog)
    {
        ui->setupUi(this);
        connect(ui->rBtnBlue,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
        connect(ui->rBtnRed,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
        connect(ui->rBtnBlack,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
    }

    在构造函数中将 3 个 RadioButton 的 clicked() 信号与同一个槽函数 setTextFontColor() 相关联。再编译后运行,就可以更改文字的颜色了。

    三个按钮的功能设计

    界面上还有“确定”“取消”“退出”3 个按钮,这是在对话框中常见的按钮。“确定”表示确认选择并关闭对话框,“取消”表示取消选择并关闭对话框,“退出”则直接关闭对话框。

    QWDialog 是从 QDialog 继承而来的,QDialog 提供了 accept()、reject()、close() 等槽函数来表示这三种状态,只需将按钮的 clicked() 信号与相应槽函数关联即可。

    下面采用可视化的方式,将按钮的 clicked() 信号与这些槽函数关联起来。在 UI 设计器里,单击上方工具栏里的“Edit Signals/Slots”按钮,窗体进入信号与槽函数编辑状态,如图 10 所示。


    窗体进入Signals/Slot编辑状态
    图 10 窗体进入Signals/Slot编辑状态


    将鼠标移动到“确定”按钮上方,再按下鼠标左键,移动到窗体的空白区域释放左键,这时出现如图 11 所示的关联设置对话框。


    信号与槽关联编辑对话框
    图 11 信号与槽关联编辑对话框


    在图 11 中,左侧的列表框里显示了 btnOK 的信号,选择 clicked(),右边的列表框里显示了 QWDialog 的槽函数,选择 accept(),单击“OK”按钮。

    同样的方法可以将 btnCancel 的 clicked() 信号与 QWDialog 的 reject() 槽函数关联,将 btnClose 的 clicked() 信号与 QWDialog 的 close() 槽函数关联。

    注意,在图 11 的右侧列表框中没有 close() 槽函数,需要勾选下方的“Show signals and slots inherited from QWidget”才会出现 close() 函数。

    设置完 3 个按钮的信号与槽关联之后,在窗体下方的 Signals 和 Slots 编辑器里也显示了这 3 个关联。实际上,可以直接在 Signals 和 Slots 编辑器进行关联设置。现在编译并运行程序,单击这 3 个按钮都会关闭程序。

    那么,这 3 个按钮的信号与槽函数的关联是在哪里实现的呢?答案在 setupUi() 函数里,在 setupUi() 函数里自动增加了以下 3 行代码:

    QObject::connect(btnOK, SIGNAL(clicked()), QWDialog, SLOT(accept()));
    QObject::connect(btnCancel, SIGNAL(clicked()), QWDialog, SLOT(reject()));
    QObject::connect(btnClose, SIGNAL(clicked()), QWDialog, SLOT(close()));

    这个实例程序的功能全部完成了。采用 UI 设计器设计了窗体界面,采用可视化和程序化的方式设计槽函数,设计信号与槽函数之间的关联。

    从以上的设计过程可以看到,Qt Creator 和 UI 设计器为设计应用程序提供了强大的可视化设计功能。

    展开全文
  • QT界面布局设计

    2017-08-18 09:41:48
    说明:对应的文件有:***.ui(界面显示文件) ***.h ***.cpp(处理事件所在的文件) ui_***.h(此文件在编译时生成,但是在QT工程中不显示,其中内容为控件的界面布局) 方法二、手工编写代码 1、创建类,在类中...

    方法一、用QT设计器

    1、以方便快捷的将需要的控件拖放至适当的位置,并通过样式简单设置其显示风格

    2、右击跳转到槽,为控件添加处理事件

    说明:对应的文件有:***.ui(界面显示文件)   ***.h   ***.cpp(处理事件所在的文件)  ui_***.h(此文件在编译时生成,但是在QT工程中不显示,其中内容为控件的界面布局)    

    方法二、手工编写代码

    1、创建类,在类中定义需要的控件对象,并按照一定的布局显示

    2、通过用QObject对象的connect对控件和需要处理的事件进行连接,事件处理函数由自己进行声明和定义

    说明:对应的文件有:***.h  ***.cpp,每创建一个类,生成对应的一对文件,实现界面等功能


    方法三、结合方法一和方法二

    1、利用系统通过UI文件自动生成ui_***.h文件

    2、在生成的ui头文件中对界面布局进行修改

    3、在对应的头文件和源文件中进行事件处理

    说明:对应的文件有:***.h  ***.cpp  ***.ui , ui_***.h

    展开全文
  • Qt界面布局和常用控件

    千次阅读 2015-01-05 21:32:05
    Qt界面布局基本分为3种,水平布局(Horizontal Layout),垂直布局(Vertical Layout),网格布局(Grid Layout)。 通过继承QLayout,也可以实现自定义的布局类,可以参考Qt官方例程Flow Layout Example,实现了流式布局...

        Qt 提供了通用的界面布局类QLayout,提供了管理控件位置的功能, QBoxLayout, QFormLayout, QGridLayout, 和 QStackedLayout.均继承自QLayout。Qt的界面布局基本分为3种,水平布局(Horizontal Layout),垂直布局(Vertical Layout),网格布局(Grid Layout). 此外,Form Layout提供了两列展示的布局方式,左边是文本,右边是关联的控件。采用布局管理器可以方便的对控件进行定位、实现自动拉伸等功能。

        通过继承QLayout,也可以实现自定义的布局类,可以参考Qt官方例程Flow Layout Example,实现了流式布局,即界面宽度不够时自动换行。

        水平布局,里面的控件将水平展示,布局器里面的控件大小若没有固定,其大小将随着布局的大小而自动拉伸。可以通过设置其左(layoutLeftMargin)、上(layoutTopMargin)、右(layoutRightMargin)、下边距(layoutBottomMargin)来调整里面控件相对于布局的边距,控件之间的宽度可以通过layoutSpacing属性进行设定。在Qt Designer里,可以先拖拽控件至窗口中,然后进行点击水平、垂直布局等实现布局,也可以先拖拽布局,再向里面添加控件。布局里不能添加控件时需要先打破布局,再添加,再布局。

        垂直布局与水平布局方向不一样,用法类似。

        弹簧(Spacer)可以方便对控件进行分割、自动撑开界面、自动拉伸等,分为水平弹簧(Horizontal Spacer),垂直弹簧(Vertical Spacer)。sizeType属性指定了其伸展策略,Fixed固定大小,Expanding自动拉伸。sizeHint指定了其初始宽高。例如在水平布局里使控件右对齐,可以在布局左侧放置一个Expanding的弹簧,在右侧放置控件。两端对齐,则可以在中间放置一个自动拉伸的弹簧,弹簧的宽度将随着布局的宽度而自动拉伸。

        常用控件:

        QPushButton,按钮,可以被点击,可以显示图标、文字。

        QLabel,可以显示文字、图片、动画(gif)。

        QToolButton,可以显示菜单的按钮。

        QRadioButton,单选按钮,QCheckBox,复选按钮。

        单选按钮组,将单选按钮放在同一个水平或垂直布局里,就自动成为一组了,不一定要放到QGroupBox或QButtonGroup里。

        QLineEdit,单行文本框。QTextEdit,多行文本框。

        Combo Box(QComboBox),下拉选择框。

        QSpinBox,上下数字选择框。

        QWebView,显示网页的控件,支持html、css、js。

        QListView 显示列表项的视图控件,配合model(模型)和delegate(委托)使用,实现mvc模式。

        QListWidget,显示列表项的控件,可以setItemWidget,使列表中的项显示某一控件。

        QScrollArea,实现滚动的控件,带滚动条。

        QTabWidget,实现tab页效果的控件。

        QStackedWidget,控件栈,一次只能显示一个widget。


        By Lankin.

        2015/1/5


    展开全文
  • qt界面布局之Layout

    2019-09-18 16:14:24
    1、qt中不使用的布局样式: 看出来即使使用了水平布局但是依然会发现界面中会出现空白留存,这种情况下普通的托动是不会发生改变的, 所以这个时候需要采取其他的方式进行更改,这个时候就用到了layout 使用的...
  • 实例讲解ln_2 双击dialog.ui进入设计界面,进行如下设计: ...程序的主要功能是对中间一个文本框的文字字体样式和颜色进行...对于不需要程序访问的组件则无需修改其 objectName,如用于界面上组件分组的 Gr...
  • 上图布局会出现的问题和解决方案 1.textBrowser太大导致非全屏的时候显示不全(设置texBrowser的高宽最大值限定其大小) 2.使用splitter(分裂器水平布局)的时候会出现左右两部分显示的大小相等,但是实际上我们...
  • QT界面布局之QGridLayout网格布局

    千次阅读 2018-10-13 20:07:14
    之前一直用拖控件的方式来做ui界面,最大的心得就是,要充分利用“布局类型”和“弹簧”。 但是对于动态界面来说(例如,用户点击某个按钮后,要在界面中添加一个新控件),通过拖拽设计的ui就力不从心了。 今天...
  • 在上一节,通过一个简单的应用程序,分析了 Qt 创建的 GUI 应用程序中...本节再以一个稍微复杂的例子来讲解设计 GUI 的常见功能,包括界面设计时布局的管理,以及程序里如何访问界面组件。 实例程序功能 创建一个...
  • 在上一节,通过一个简单的应用程序,分析了Qt创建的 GUI 应用程序中...本节再以一个稍微复杂的例子来讲解设计 GUI 的常见功能,包括界面设计时布局的管理,以及程序里如何访问界面组件。 实例程序功能 创建一个...
  • 2、在qt中添加资源,右键-添加新文件-Qt-QtResource File-写上名称 ,如:image 3、添加-添加前缀,去掉/new,然后点击添加-添加文件-选择要添加进去的图片-保存一下,这样就将图片添加进来了。 4、记得在widget....
  • qt界面布局之给widget填充背景颜色

    千次阅读 2019-09-04 16:55:23
    一、qt新建一个widget类程序,然后就是拖动一个widget容器放在界面上,然后选择如图所示: 二、最后得到的图形如图所示:
  • setWindowFlags(Qt::FramelessWindowHint); 发现界面会变成如下:无边框 3、无边框之后,界面就没办法拖动,以及放大缩小,全部都要由我们自己去设置了 下面是拖两个按钮在界面上,然后进行放大缩小的处理,在...
  • qt界面布局之给按钮添加图片

    千次阅读 2019-08-20 16:59:38
    三、以上的两种都是通过代码来进行给按钮添加上图片,第三种是直接通过ui控件的布局来给界面添加图片 1、首先第一步还是添加资源文件,将你需要加载的图片全部添加进来 2、选中按钮,找到icon,如图所示: ...
  • qt界面布局之给字体样式的设计

    千次阅读 2019-09-10 09:49:33
    一、qt中经常会设计label控件里面的字体样式的改变,设计方案一 选择font进行更改: 二、右击label,然后找到更多文本信息,如图所示进行更改
  • 一、新建一个widget类的qt程序,然后添加几个按钮,基本布局如下: 二、在加上按钮之后,需要做的是将之前的qt默认的放大缩小、关闭等系列的功能进行屏蔽,在构造函数中 加上如下的代码: setWindowFlags(Qt:...
  • qt界面布局之label中的文字对齐方式

    千次阅读 2020-11-11 15:44:31
    今天才发现lable一般拖动到界面中,拉大之后,界面效果就是如下:是靠左显示出来的 但是我们想让它进行居中的显示效果,就需要选择如下的居中效果: 然后就发现它可以达到居中的效果了: ...
  • 一、进行界面布局的时候,往往需要将界面显示在整个桌面的中心位置,所以需要进行一下处理 二、加上头文件 #include <QDesktopWidget> #include <QApplication> 三、再在构造函数中加上代码 ...
  • qt界面布局之Push Button的使用规则

    千次阅读 2019-09-17 18:43:49
    1、设计了一款界面,也是根据网上的资料整合设计出来的,界面如图所示: 在.h文件中: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #...
  • 一、新建程序,拖上一个按钮,然后就是选中按钮,找到样式设计,如图所示: 加入样式如图所示: 代码如下: border-style:none; padding:11px; border-radius:3px; background:transparent;......
  • 2、首先我们需要在界面上拖动一个Checkbox按钮,然后就是实现转到槽的功能。如图所示: 3、再拖动一个TextEdit在界面上,然后就是需要加上如下代码实现下划线的功能 void MainWindow::on_checkBox_clicked(bool...
  • 一、加上头文件: #include <QBitmap> #include <QPainter> 二、在构造函数中添加: ... setWindowFlags(Qt::FramelessWindowHint); QBitmap bmp(this->size()); bmp.fill(); QPainte...
  • 解决方法是QWidget的高度size Policy设置为Fixed。
  • 窗口的基本布局如下 1、分割窗口 QSplitter //分割窗口使用QSplitter类 QSplitter *splitterMain =new QSplitter(Qt::Horizontal,0); // 对窗口进行水平分割,0代表有分割的窗口为主窗口,也可以选择要分割的...
  • 界面布局 ctrl+H :水平布局 ctrl+L:垂直布局 shift+alt+r:预览 设置固定大小 F4进入系统信号,鼠标拖拽(F3切换对话框) 启动进程 #include &lt;QProcess&gt; QProcess *process = new ...
  • QT界面布局

    2020-11-08 14:59:22
    1. Qt界面布局 Qt的界面布局大致分为三类:水平布局、垂直布局、栅格布局(以下示例图出自一位灵魂画师) 水平布局 垂直布局 栅格布局 2. 我们为什么需要界面布局 1. 美观 美观是显而易见的,我们通过一个简单地...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,078
精华内容 5,231
关键字:

qt界面布局