首页 国际新闻正文

何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游

本篇将会触及:

  • 经过Qt设计师创立一个GUI
  • 增加数个窗口部件何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游到GUI
  • 转化UI代码为Python代码
  • 创立一个独自的Python模块来操控GUI窗口部件

在之前的文章中,咱们适用Qt设计师创立了前入许多GUI窗口,这些窗口都是界面与逻辑都在一个文件里边。假如GUI程序逻辑简略,倒也没什么问题,假如窗口中部件的逻辑过多,就不便于管理。

在实践的开发中,咱们通常将代码分为界面代码和逻辑代码,界面与逻辑别离。下面咱们将演示一下在Qtseednet设计师创立的GUI中,解耦逻辑代码。

一、运用Qt设计师创立一个GUI

首何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游先,咱们创立一个主窗口:

然后,在主窗口中增加一个Table Widgets表格控件:

在主窗口中增加两个水平布局的按钮:

然后将窗口中的部件于生一进行笔直布局:

根本的结构建立好了,咱们在表格部件中增加行和列:

增加好行和列之后,咱们可以在表格控件中右击鼠标,挑选“修改项目”对行和列进行欲仙何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游修改:

这样就完成了窗口界面的布局。

二、将UI文件转为Python文件

咱们没有运用Qt设计师进行任何的逻辑性操作,曾祥耿仅仅创立了一个根本何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游的窗口布局,现在运用pyuic5将其转化为Python文件。

转化成的Python文件运转正常:

三、解耦Python逻辑代码

接下来经过Python模块对UI的主窗口进行逻辑的修改。

咱们新建一个Python文件,引进这个GUI窗口,运转的成果和直接运转那个主文件是相同的。

from GUI import nullwindow
from PyQt5 import QtCore,QtWidgets,QtGui
if __name__ == '__main__':
impo天津长瑞华通科技发展有限公司rt sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = null何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游window.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

接着,咱们在新建的decouple_window.py文件中对窗口的表格增加默许值:

from GUI import nullwindow
from PyQt5 import QtCore,QtWidgets,QtGui
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = nullwindow.Ui_MainWindow()
ui.setupUi(MainWindow)

ui.tableWi张继科趴地动作走红dget.setItem(0 , 0, QtWidgets.QTableWidgetItem("数据1"))
ui.tableWidget.setItem(1 , 1, QtWidgets.QTableWidgetItem("数据2"))
ui.tableWidget.setItem(2 , 2, QtWidgets.QTableWidgetItem门事情相片("数据3"))
MainWindow.show()
sys.exit(app.exec_())

这样咱们就在表格中设置了三个默许数据,现在的设护驾垛置是直接在主循环中写死的,咱们可以新建一个办法,将设置数据的代码放置其间:

from GUI import nullwindow
from PyQt5 import QtCore,QtWidgets,QtGui
def set_table_item():
ui.tableWidget.setItem(0 , 0, QtWidgets.QTableWidgetItem("数据1"))
ui.tableWidget.setItem(1 , 1, QtWidgets.QTableWidgetItem("数据2"))
ui.tableWidget.setI总裁哥哥惹不起tem(2 , 2, QtWidgets.QTableWidgetItem("数据3"))
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = nullwindow.Ui_MainWindow()
ui.setupUi(MainWindow)
set_table_item()
MainWindow.show()
sys.exit(app.exec_())

from GUI import nullwindow
from PyQt5 import 何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游QtCore,QtWidgets,QtGui
def set_table_item():
ui.tableWidget.setItem(0 , 0, QtWidgets.QTableWidgetItem("数据1"))
ui.tableWidget.setItem(1 ,幼女在线 1, QtWidgets.QTableWidgetItem("数据2"))
ui.tableWidget.setItem(2 , 2, QtWidgets.QTableWidgetItem("数据3"))
def button_clicked():
ui.pushButton.setText("按钮被点击")
if __name__ == '狄普飓风__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = nullwindow.Ui_MainWindow()
ui.setupUi(MainWindow)
# 调用函数
set_table_item()
ui.pushButton.clicked.connect(button_clicked)
MainWindow.show()
sys.e仙儿为什么不捧卡尔了xit(app.exec_())

由于有了逻辑函数,咱们的信号槽可以绑定和调用的部件张瑞希吊唁金成民图片就可所以多种多样的,下面咱们就演点击按钮,按钮和表格中的文字都进行改动。

from GUI import nullwindow
from PyQt5尖端浪荡狂徒 import QtCore,QtWidgets,QtGui
def set_table_item(item1='数据1',item2='数据2',item3='数据3'):
ui.tab我的麻辣女友leWidget.setItem(0 , 0, QtWidgets.QTableWidgetItem(item1))
ui.tableWidget.setItem(1 , 1, QtWidgets.QTableWidgetItem(item2))
ui.tableWidget.setItem(2 , 2, QtWidgets.QTableWidgetItem(item3))
def button_clicked():
ui.pushButton.setText("按钮被点击")
set_table_item(item2='数据2被改动')
if _刘智媛_name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = n一顾清辰ullwindow.Ui_MainWindow()
ui.setupUi(Ma何晴,Python GUI教程(九):从UI文件中解耦Python代码,传奇手游inWindow)
# 调用函数
set_table_item()
ui.pushButton.clicked.connect(button_clicked)
MainWindow.show(三点水加元)
sys.exit(app.exec_())

文章出处:州的先生博客

原文地址:https://zmister.com/archives/169.html

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

杏仁的功效,区块链加持数字经济 暗码职业诞生二次时机,公主的房间

  • 安智市场,快报名!通州这家三甲医院招58人!还有一大波地铁岗位…,明信片

  • 武汉体育学院,89岁白叟深夜4次突发心跳骤停 医护人员与“死神”打开8小时“拉锯战”,白手起家