Qt设计师(Qt Designer)是使用Qt部件(Widgets)设计和使用图形用户界面(GUI)的工具。它允许我们以所见即所得的方式构建和定制自己的窗口(Windows)或对话框(Dialogs)并提供了不同的方法来测试它们。

使用Qt的信号-槽机制,可以无缝地将Qt设计师创建的部件或窗体与手工编写的代码整合在一起,这使得我们可以轻松地为图形元素定义行为。Qt设计师设置的所有属性均可以在代码中动态地修改。Furthermore, features like widget promotion and custom plugins allow you to use your own components with Qt Designer.

注意:除了部件(widgets),你还可以选择使用Qt Quick来设计用户界面,它是编写许多应用的快捷途径。由于它是基于OpenGL 图形加速技术,它充分支持了可定制外观,触摸反应元件,平滑地动画过渡。

初识Qt设计师

打开Qt设计师

安装完Qt后,可以像打开其他程序一样打开Qt设计师,也可以从Qt Creator中打开Qt设计师。Qt Creator自动将所有的.ui文件放在它集成的Qt设计师中以设计模式打开。一般意义下,集成的Qt设计师包含全部独立Qt设计师的功能,关于它们之间的差异,请参考Qt手册。

如果窗体太大不适合在Qt Creator中以设计模式打开,可以使用独立Qt设计师打开。

用户界面

独立Qt设计师界面可以被设置为多窗口界面或docked window mode,集成Qt设计师只有多窗口界面可供使用

在多窗口模式下,可以调节各个工具窗口以适应你的工作风格,主窗口包含了菜单栏、工具栏以及一个包含了所有可用的部件的部件盒子

(懒得翻译,都是废话)

Qt Designer's Main Window
The menu bar provides all the standard actions for managing forms, using the clipboard, and accessing application-specific help. The current editing mode, the tool windows, and the forms in use can also be accessed via the menu bar.
The tool bar displays common actions that are used when editing a form. These are also available via the main menu.
The widget box provides common widgets and layouts that are used to design components. These are grouped into categories that reflect their uses or features.

Qt Designer's Widget Box
The widget box provides a selection of standard Qt widgets, layouts, and other objects that can be used to create user interfaces on forms. Each of the categories in the widget box contain widgets with similar uses or related features.
You can display all of the available objects in a category by clicking on the handle next to the category label. When in Widget Editing Mode, you can add objects to a form by dragging the appropriate items from the widget box onto the form, and dropping them in the required locations.
Qt Designer provides a scratch pad feature that allows you to collect frequently used objects in a separate category. The scratch pad category can be filled with any widget currently displayed in a form by dragging them from the form and dropping them onto the widget box. These widgets can be used in the same way as any other widgets, but they can also contain child widgets. Open a context menu over a widget to change its name or remove it from the scratch pad.

通过菜单栏、工具栏以及部件盒子可以使用Qt设计师的大部分功能,少部分功能需要通过上下文菜单才能使用,在大多数平台上,点击鼠标右键可以打开上下文菜单。

Qt中布局(layout)的概念

布局是用来安排和管理用户界面中的元素。Qt提供了一组类来自动掌控界面布局--QHBoxLayout, QVBoxLayout, QGridLayout, and QFormLayout。这些类解决了自动完成部件布局的难题,使得用户界面具有可预见性。幸运地是,不需要对这些类有很详细的了解,直接使用即可。

每个Qt部件有推荐的大小,可通过sizeHint()得到,这些布局管理者会尝试将这些部件设置为推荐大小。某些情形下,没有必要使用其他的大小。例如,根据字体的类型和大小,QLineEdit 的高度就是固定值。还有一些情形下,需要对部件的大小进行调整,而每个部件的大小都有最大值和最小值--minimumSize 和 maximumSize。

下图展示了栅格中各个部件的位置(3x3),

上图中 QPushButton对象是嵌套的。

下面的例子展示了Qt layout根据需要自动调节部件大小的能力

Qt设计师Tab顺序编辑模式

Qt允许用户使用Tab键或Shift+Tab快捷键在不同的输入部件之间切换,部件默认的Tab顺序就是部件被构造的先后顺序,当然也可以自己编辑Tab顺序,使得应用程序更方便使用。

进入Tab顺序编辑模式后,通过点击输入控件上显示的序号,可以更改Tab顺序,直至满意为止。

Qt设计师Buddy编辑模式

Qt一个非常有用的特性是允许Buddy部件,即将一个QLabel部件与一个输入部件设为buddy关系,这样用户通过按下QLabel部件的快捷键就可以将输入光标设置在与它有buddy关系的输入部件。

Qt设计师中布局(layout)部件的使用

将多个对象放置在布局部件中,当窗体大小改变后,布局部件会自动调节它内部的对象大小。另外,不能单独调整布局部件内部对象的位置和大小,可以向布局部件中添加或删除空格(spacers)来调整其中部件的位置。

  设置顶层级别的部件部件

顶层级别的部件部件可以保证窗体中部件的大小随着窗体大小的改变而改变。

  水平布局和垂直布局

简单设置各个部件之间的水平关系和垂直关系

  栅格(grid)布局

(待补充)

  Form布局

将部件放在两列中,左边一列放置QLabel对象,右边一列放置输入控件

  Splitter布局

Splitter布局和其他布局部件一样,不同的是Splitter布局运行用户调整其中的空格大小,已调整部件的位置

Qt设计师中容器(container)的使用

Qt 设计师手册的更多相关文章

  1. 【翻译】利用Qt设计师窗体在运行时创建用户界面(Creating a user interface from a Qt Designer form at run-time)

    利用Qt设计师窗体在运行时创建用户界面 我们利用Calculator窗体例子中创建的窗体(Form)来展示当一个应用(application)已经生成后,是可以在其运行时产生与例子中相同的用户界面. ...

  2. 【Qt】2.3 使用Qt设计师来创建对话框

    安装完Qt OpenSource之后,在开始菜单目录下会有这几个东西. 其中[Designer]是用来设计窗口界面的程序.所以现在可以使用它来设计一个对话框.在[Qt Creator]中,[设计]这一 ...

  3. 使用Qt设计师文件的3种方式

    使用Qt设计师设计的.ui界面文件是XML文件,有3种方式在PyQt中使用,本文将通过实例进行讲解. 使用PyQt中如何结合Qt设计师进行开发中的例子.点击按钮修改标签的内容. 1. 直接使用ui文件 ...

  4. PyQt中如何结合Qt设计师进行开发

    t设计师是Qt的所见即所得的界面设计工具,通过拖拉方式设计界面,但它并不能产生任何代码. Qt设计师使用.ui后缀的XML文件来存储界面内容.通过pyuic4命令可以编译成.py文件,.py文件的内容 ...

  5. QT新建空白项目-添加QT设计师界面类时出现的各种库无法导入识别

    按照教材上先新建一个空的项目--添加Qt设计师界面类时 出现各种 库无法识别 解决方法: 在 .pro文件中加入一行 QT += widgets 去构建中先执行 qmake 然后再构建一下  ok了 ...

  6. pyqt 调用QT设计师创建的对话框

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验步骤 2.1 ...

  7. Python GUI教程(六):使用Qt设计师进行窗口布局

    本篇介绍使用qt设计师进行GUI窗口的布局管理,主要包含以下内容: 使用Qt设计师布局我们的窗口部件: 垂直布局: 水平布局: 网格布局: 使用间隔: 使用“伙伴”将label标签与窗口部件进行连接. ...

  8. Qt设计师学习笔记--Sharping-Changing Dialogs

    1.pushbutton->default属性为true,按回车相当于点击该按钮. 2.选中checkable后,Button变成切换按钮(toggle button),可以有两种状态:按下/弹 ...

  9. centos中的qt设计师所在的包

    由于暂时用不到qt的ide,所以想把它卸了,经过一番查找,其所在的包名是: qt-devel

随机推荐

  1. Git tag push 到远端仓库

    很早之前,我们就提到过用Git tag来给工程打上标签,但是这个命令只是在本地仓库打标签而已, 为了能把标签同步到远程服务器,我们可以这样做: 默认情况下,git push并不会把tag标签传送到远端 ...

  2. android Dialog&AlertDialog

    Dialog dialog = new Dialog(context,R.style.AppBaseTheme); wifiView = AppData.inflater.inflate(R.layo ...

  3. sdk命令

    SDK命令 常用sdk命令 开启adb服务:adb start -server 关闭adb服务:adb kill -server 查看模拟器/真机:adb devices 安装/卸载/运行程序: 安装 ...

  4. TextField文本框

    1)失去第一响应者状态方法(即关闭键盘) 要先将视图view的底层类设置为UIControl类 再设置view的touch down事件,在事件中写入以下方法 [self.textField resi ...

  5. 自己赚钱送女友iPhone做惊喜

    都说谈恋爱是件费时费力又费钱的事情,你要给女朋友准备各种节日的惊喜,你要给女朋友买她喜欢的裙子,你要请女朋友吃各种美味的食物......但是也别抱怨,一个男人若是连自己女朋友的这点物质要求都满足不了的 ...

  6. 夺命雷公狗-----React---21--小案例之心情留言板

    这个功能如果是用传统型的jquery来写都要花费很多时间才可以完成的案例, 亲测jquery配合bootstrap来写和bootstrap配合react.js来写,不知不觉中有点震惊... jquer ...

  7. CentOS7安装MariaDB10.1.14

    1.下载MariaDB 下载地址:https://downloads.mariadb.org/mariadb/10.1.14/ 这里选择mariadb-10.1.14-linux-x86_64.tar ...

  8. Spring.Net 初探之牛刀小试

    又是一个周末,感受着外面30°的高温,果断宅在家里,闲来无事,就研究了一下spring .net 框架, 在这里不得不说 vs2013确实是一个强大的开发工具(起码对于.net开发来说是这样的),哈哈 ...

  9. 在jasp页面循环显示

    <% int h=3;//行数 int l=3;//列数 %> <table> <% for(int i=0;i<h;i++){ %> <tr> ...

  10. [转]LocalDB数据库修改排序规则,修复汉字变问号

    VS中新增的轻量级数据库LocalDB,有个这个,开发人员就不必再安装庞大的SQL server了,可以方便地测试运行小型项目:既然是轻量级数据库,它抛弃了庞大的身躯,功能上当然也会受到局限,其中之一 ...