发布于2020-02-10 17:27 阅读(853) 评论(0) 点赞(5) 收藏(1)
QtDesigner是一款Qt的Ui设计工具,能像C#winform程序一样拖控件到界面上,PyQt5是Python的桌面程序库,安装方式如下:
pip install pyqt5_tools # 只有安装了这个后,就有QtDesigner
pip install PyQt5 # 安装PyQt5的包
安装完成后,可以在Python中引用PyQt5的包,同时安装完成后QtDesigner的设计工具的路径为*D:\Program Files (x86)* Python38-32\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe,前面的目录是你自己Python的安装目录。
在右下角的signal/slot Edit 位置点击+号,新增一个signal和solt;
Sender选择pushButton,Signal选择clicked(),Receiver选择lineEdit,Slot选择clear();
这里的信号和槽的意义:pushButton的鼠标点击产生一个信号(clicked),这个信号发送给lineEdit对象接受,lineEdit接受到信号后执行槽里面的响应(clear),结果就是清空lineEdit里面的文本内容。
一个信号可以对应多个槽,一个槽也可以接收多个信号的响应。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
# Created by: PyQt5 UI code generator 5.13.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(591, 370)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(240, 180, 75, 23))
self.pushButton.setObjectName("pushButton")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(220, 120, 113, 20))
self.lineEdit.setObjectName("lineEdit")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 591, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
# 这里将我们前面新增的pushbButton和lineEdit的连接删掉,我们在继承的类中自定义
# self.pushButton.clicked.connect(self.lineEdit.clear)
# QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
from myui import Ui_MainWindow
import sys
from PyQt5 import QtWidgets, QtCore
class MyWinform(Ui_MainWindow):
def connect_signal_slot(self, MainWindow):
self.pushButton.clicked.connect(self.send_txt)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def send_txt(self):
self.lineEdit.setText("Hello,World!")
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = MyWinform() # 创建对象
ui.setupUi(MainWindow) # 调用父类的setupUi,生成控件
ui.connect_signal_slot(MainWindow) # 连接pushbutton的clicked信号和自定义的槽sendtxt
MainWindow.show() # 显示主窗体
sys.exit(app.exec_())
运行的效果如下:
到这里一个简单的Python写的Winform窗体程序就完成了,可以自己增加更多的控件,实现自定义的功能。
欢迎交流学习(python业余爱好者):扫码加我的微信
作者:yoyo
链接:https://www.pythonheidong.com/blog/article/231014/e7f776a4e865760fb4f0/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!