qtdesigner-试用

    技术2022-07-10  151

    参考教程:痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer) 随便画了一个界面 然后我把它保存在F盘中,命名为first_use.ui 确实,因为它不知道我把first_use.ui放在了哪。 如果就放在admin文件夹下呢?可以吗? 它出现了!

    # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'first_use.ui' # # Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.frame = QtWidgets.QFrame(self.centralwidget) self.frame.setGeometry(QtCore.QRect(170, 90, 391, 371)) self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) self.frame.setFrameShadow(QtWidgets.QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayoutWidget = QtWidgets.QWidget(self.frame) self.verticalLayoutWidget.setGeometry(QtCore.QRect(50, 250, 114, 151)) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.ok_Button = QtWidgets.QPushButton(self.verticalLayoutWidget) self.ok_Button.setObjectName("ok_Button") self.verticalLayout.addWidget(self.ok_Button) self.verticalLayoutWidget_2 = QtWidgets.QWidget(self.frame) self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(110, 90, 201, 131)) self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.textEdit = QtWidgets.QTextEdit(self.verticalLayoutWidget_2) self.textEdit.setObjectName("textEdit") self.verticalLayout_2.addWidget(self.textEdit) self.label = QtWidgets.QLabel(self.frame) self.label.setGeometry(QtCore.QRect(140, 40, 171, 20)) self.label.setObjectName("label") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 30)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.ok_Button.setText(_translate("MainWindow", "确定")) self.label.setText(_translate("MainWindow", "试用qtdesigner"))

    现在,为了使用这个py文件,我将创建一个名为designer_learning的project,并且把first_use.py放进去。再创建一个main_use.py,环境还是database环境(虽然不知道为什么要这么做,我这次用的qtdesigner是安装在默认环境下的,因为昨天晚上安装在database下的qtdesigner显示缺少一个.dll文件打不开。) 每次我选这个python interpreter的时候都特别纠结,因为我不知道怎么选。好像我每次建一个文件或者安装一个新的环境都会有一个新的python.exe文件。这次这个main_firstuse文件下的python居然还显示invalid。最后我选择database的那个。

    import sys from PyQt5.QtWidgets import QApplication, QMainWindow # 导入my_win.py中内容 from first_use import * # 创建mainWin类并传入Ui_MainWindow class mainWin(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(mainWin, self).__init__(parent) self.setupUi(self) if __name__ == '__main__': # 下面是使用PyQt5的固定用法 app = QApplication(sys.argv) main_win = mainWin() main_win.show() sys.exit(app.exec_())

    就是说,虽然我也不知道是什么时候安装的sys包,但是我居然成功了: 现在把mainWin这个类修改一下

    class mainWin(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(mainWin, self).__init__(parent) self.setupUi(self) # 将响应函数绑定到指定Button self.ok_Button.clicked.connect(self.showMessage) # Button响应函数 def showMessage(self): self.textEdit.setText('hello world')

    报错: 应该就是tab和空格的问题。把报错行之前的空格删掉,再重新打空格到同样的位置就可以了。再试一次:

    Processed: 0.012, SQL: 9