PyQT5之使用QT Designer创建基本窗口方式

  

下面是使用QT Designer创建基本窗口的完整攻略:

步骤一:安装PyQt5和QT Designer

PyQt5是一个Python的GUI编程工具包,QT Designer是QT的一个可视化工具,用于设计界面。在开始使用之前,需要先安装PyQt5和QT Designer。

可以通过以下命令在命令行中安装:

pip install PyQt5 PyQt5-tools

步骤二:用QT Designer设计界面

第一步是打开QT Designer。在Windows中,可以通过在开始菜单中找到“QT Designer”来打开它。在Linux中,可以在终端中输入以下命令来打开它:

designer

在QT Designer中,我们可以利用拖放来创建图形用户界面。当我们想要添加一个控件时,只需从左边的工具箱中拖动到UI设计区域中即可。

例如,我们可以在UI设计区域中添加一个标签控件。选中“ QLabel”控件并将其拖动到UI设计区域中,右侧属性栏会显示出标签的属性。我们可以在这里更改标签的文本,例如将其更改为“Hello World”。

此外,我们还可以将控件间的布局设置为水平布局、垂直布局或网格布局。布局工具位于左下角的工具箱中。

完成界面设计后,我们需要将其保存为.ui文件。可以通过“文件”>“保存”或使用快捷键“Ctrl + S”来保存。

步骤三:将UI文件转换成PyQt5可用的Python文件

QT Designer创建的.ui文件无法直接用于PyQt5的Python程序中。需要将其转换为Python文件。可以使用以下命令来转换:

pyuic5 -x input.ui -o output.py

其中,input.ui表示QT Designer创建的界面文件,output.py表示转换输出的Python文件名。

步骤四:编写Python程序

现在我们已经有了一个QT Designer设计的界面,以及一个由.pyuic5工具转换得到的Python文件。我们可以在Python代码中调用该Python文件以创建并显示界面。

下面是一个简单的Python程序,它指定了上一步中转换输出的Python文件名:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from output import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例中,我们首先导入了一些必要的模块和库。接下来,定义了一个名为MainWindow的类,并从QMainWindow和Ui_MainWindow中继承它。在这里,我们使用了一个名为“setupUi”的函数,该函数将界面加载到我们的MainWindow中。

在main函数中,我们创建了一个名为app的QApplication对象,并创建了一个名为window的MainWindow对象。然后,我们调用show函数以显示窗口,并使用exec_函数进入主事件循环。

示例一:创建一个带有按钮的界面

接下来,我们来看一个带有按钮的界面的示例。

首先,我们用QT Designer创建一个带有按钮的界面。在UI设计区域中,我们可以拖放一个按钮控件到界面上。然后,在右侧属性编辑器中,更改按钮的文本,例如将其更改为“Click me”。

接着,我们将该UI文件转换为Python文件,并编写Python代码用于显示该界面,并在按钮上添加点击事件:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from output import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.button_clicked)

    def button_clicked(self):
        print("Button Clicked")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例中,我们在MainWindow类中添加了一个名为“button_clicked”的函数,并通过“connect”函数将其连接到了按钮控件的“clicked”信号。

当按钮被点击时,将会调用“button_clicked”函数,并在控制台上打印“Button Clicked”字符串。

示例二:创建一个带有文本框和标签的界面

最后,我们来看一个带有文本框和标签的界面的示例。

首先,我们用QT Designer创建一个带有标签和文本框的界面。然后,我们在右侧属性编辑器中更改标签的文本,例如将其更改为“Enter your name”。然后,我们将文本框的ID属性更改为“lineEdit”。

下一步是将UI文件转换为Python,并编写Python代码以显示该窗口,并在文本框中输入内容并将其显示在标签中:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from output import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.button_clicked)

    def button_clicked(self):
        name = self.lineEdit.text()
        self.label.setText("Hello " + name)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例中,我们在MainWindow类中创建了一个名为“button_clicked”的函数,并在其中使用“lineEdit”控件的文本属性来获取文本框中输入的文本。然后,我们将该文本添加到标签的文本中,并将其显示到窗口中。

以上就是使用QT Designer创建基本窗口的完整攻略,包括两个示例程序。

相关文章