PyQt4 精彩实例分析* 实例9 利用Qt Designer设计一个对话框

在Qt编程中,程序员通常都是使用手动编写Python源代码来进行Qt程序开发,但有些程序员也喜欢使用可视化的方法进行对话框设计,因此,Qt为习惯利用可视化方式进行窗口程序设计的程序员提供了Designer,它可以给一个应用程序提供全部或者部分对话框。用Qt Designer设计的对话框和用Python写代码写成的对话框是一样的,可以用作一个常用的工具,并不对编辑产生影响。使用Qt Designer可以方便快速地对对话框进行修改,在对话框经常需要变化的情况下,这是一种很好的方式。使用Qt Designer设计对话框一般都有如下几个步骤:

1)创建窗体并在窗体中放置各种控件。

2)对窗体进行布局设计。

3)设置各控件的标签顺序。

4)创建信号和槽。

5)连接信号和槽。

Qt Designer的启动可以通过命令行运行designer完成,或Windows下的开始菜单完成,启动后界面如下图所示。


Qt Designer提供如下5种表单模板可供选择:

1)底部带“确定”,“取消”按钮的对话框窗体。

2)右侧带“确定”,“取消”按钮的对话框窗体。

3)不带按钮的对话框窗体。

4)Main Window类型窗体。

5)通用窗体。

这里选择创建一种不带按钮的对话框窗体,接下来需要做的就是在窗体中放置各种需要的控件,Qt Designer的设计空间列出了所有控件以及各控件的属性设置窗体。在窗体中放置一个Label和LineEdit,两个PushButton和一个Horizontal Spacer控件,并设置种控件的text属性,如下图所示。在开始向窗体中放置控件时,不用太在意控件对齐与否,只用放置大概位置即可。


接下来对窗体的各个控件进行布局设计,选择位于同一行的所有控件,选择Qt Designer菜单中的“窗体”-->“水平布局”或右击选择“布局”-->“水平布局”,然后选择两个水平布局,右击选择“布局”-->“栅格布局”,完成所选控件的水平布局。完成布局设计后适当调整整个窗体的大小,以适合控件的大小,如下图所示。



然后对各控件的标签顺序进行设置,选择Qt Designer菜单中的“编辑”--> “编辑Tab顺序“,进入标签设置模式,窗体中各个控件上出现一个蓝色的小框,框内的数字表示该控件的标签顺序,即焦点顺序,如下图所示,可以单击蓝色小框修改标签顺序。完成标签顺序设置后选择Qt Designer菜单中的“编辑”-->“编辑窗口部件”离开标签设置模式。


接下来进行信号和槽的连接,选择Qt Designer菜单中的“编辑”-->“编辑信号/槽”,进入信号/槽连接模式,如下图所示。此时单击OK按钮,然后拖动鼠标,可以发现有一根红色的类似接地线的标志线被拖出,松开鼠标,弹出信号/槽的连接配置窗口,如下图所示。



连接配置窗口左侧列出了按钮OK的所有信号,右侧列出了对话框的所有槽,选择OK按钮的clicked()信号和右侧的accept(),单击“确定”按钮,此时完成按钮OK的信号/槽的连接,用同样的方式配置按钮Cancel的信号/槽,如下图所示。


至此,关于Qt Designer的操作就结束了,生成一个.ui文件,保存为9.ui。

然后使用pyuic4命令生成一个py文件,如下图所示。


接下来编写一个9.py主文件来运行这个程序。具体实现代码如下:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
import ui_9

class TestDialog(QDialog,ui_9.Ui_Dialog):
    def __init__(self,parent=None):
        super(TestDialog,self).__init__(parent)
        self.setupUi(self)

app=QApplication(sys.argv)
dialog=TestDialog()
dialog.show()
app.exec_()

运行后分别单击OK和Cancel按钮,执行对话框的accept()和reject()函数,如下图所示。


使用Qt Designer设计对话框是一种简单有效的方法,可以节省设计对话框的时间,而且修改方便,直观,对于初学者来说,这是一种入门的好方法。但随着程序越来越复杂,Qt Designer也有不利的地方:首先,使用Qt Designer生成的代码比较庞大,很多代码是自动生成的,不利于开发者阅读,其次对于初学者而言,使用Qt Designer不利于掌握Qt编程的本质(类似于.NET)。因此,笔者还是建议昼使用手动的方式编写源代码,这样能更好地理解Qt编程的本质,更多地体验Qt编程的乐趣。本书的绝大部分实例都是采用手动编写代码的方式进行实现的。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用PyQt5 QtDesigner的简单项目实例: 1. 创建QtDesigner UI 首先,在QtDesigner中创建一个UI文件,添加所需的窗口小部件,并将其保存为.ui文件。 例如,创建一个简单的登录窗口,其中包含一个用户名和密码输入框以及一个登录按钮。 2. 将UI文件转换为Python代码 使用pyuic5命令将.ui文件转换为Python代码。在命令行中运行以下命令: ``` pyuic5 -x <input_file.ui> -o <output_file.py> ``` 例如,如果UI文件名为`login.ui`,则可以使用以下命令将其转换为Python代码: ``` pyuic5 -x login.ui -o login_ui.py ``` 3. 编写主程序 创建一个名为`main.py`的Python文件,并使用以下代码加载UI文件并显示窗口: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow from login_ui import Ui_LoginWindow class LoginWindow(QMainWindow, Ui_LoginWindow): def __init__(self): super().__init__() self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) login_window = LoginWindow() login_window.show() sys.exit(app.exec_()) ``` 在这里,我们导入了`QApplication`和`QMainWindow`类,以及我们之前生成的`Ui_LoginWindow`类。我们创建了一个名为`LoginWindow`的子类,该类继承了`QMainWindow`和`Ui_LoginWindow`,并在`__init__`方法中调用了`setupUi`方法来设置UI文件中定义的小部件。 在主程序中,我们创建一个`QApplication`对象和一个`LoginWindow`对象,并使用`show`方法显示窗口。最后,我们使用`sys.exit(app.exec_())`来进入Qt事件循环。 4. 运行程序 运行`main.py`文件,将会显示一个简单的登录窗口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值