日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python操作界面_Python使用PyQt5的Designer工具创建UI界面

發(fā)布時間:2023/12/2 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python操作界面_Python使用PyQt5的Designer工具创建UI界面 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Designer-UI編輯器

Designer是pyqt5-tools帶的工具,默認(rèn)可以在Python安裝目錄下找到的。我的之前項(xiàng)目導(dǎo)入過pyqt5-tools,所以我直接全盤搜索到了。

打開designer后,我們可以編輯我們想要的UI界面,下面是我編輯的測試界面:

編輯好界面,點(diǎn)擊保存 會生成一個.ui格式的文件。

二、將.ui文件轉(zhuǎn).py文件

使用Designer創(chuàng)建出來的.ui文件不能被python讀取,所以我們需要轉(zhuǎn)成.py格式

使用工具:pyuic5, 也在python的安裝目錄下。

1.在pyuic5所在目錄打開命令行(若已將pyuic5加入環(huán)境變量,則忽略此步驟)。

2.然后執(zhí)行以下命令:

1

pyuic5-oD:\test.pyD:\test.ui

生成test.py內(nèi)容如下:

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'C:\Users\Administrator.000\Desktop\log.ui'

#

# Created by: PyQt5 UI code generator 5.10.1

#

# WARNING! All changes made in this file will be lost!

fromPyQt5importQtCore,QtGui,QtWidgets

classUi_MainWindow(object):

defsetupUi(self,MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(800,600)

self.centralwidget=QtWidgets.QWidget(MainWindow)

self.centralwidget.setObjectName("centralwidget")

self.printLogButton=QtWidgets.QPushButton(self.centralwidget)

self.printLogButton.setGeometry(QtCore.QRect(190,30,381,51))

self.printLogButton.setObjectName("printLogButton")

self.textEdit=QtWidgets.QTextEdit(self.centralwidget)

self.textEdit.setGeometry(QtCore.QRect(150,190,461,341))

self.textEdit.setObjectName("textEdit")

self.clearLogButton=QtWidgets.QPushButton(self.centralwidget)

self.clearLogButton.setGeometry(QtCore.QRect(190,110,381,51))

self.clearLogButton.setObjectName("clearLogButton")

MainWindow.setCentralWidget(self.centralwidget)

self.menubar=QtWidgets.QMenuBar(MainWindow)

self.menubar.setGeometry(QtCore.QRect(0,0,800,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)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

defretranslateUi(self,MainWindow):

_translate=QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow","MainWindow"))

self.printLogButton.setText(_translate("MainWindow","打印Log"))

self.clearLogButton.setText(_translate("MainWindow","清除Log"))

三、創(chuàng)建簡單項(xiàng)目結(jié)構(gòu)

我們新建個py項(xiàng)目,文件結(jié)構(gòu)如下:

下面來填充代碼:

Entry.py(入口py腳本)

Python

1

2

3

4

5

6

importMainController

if__name__=='__main__':

mainController=MainController.MainController()

mainController.do()

MainView.py(將上一步生成的test.py內(nèi)容copy進(jìn)來)

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'C:\Users\Administrator.000\Desktop\log.ui'

#

# Created by: PyQt5 UI code generator 5.10.1

#

# WARNING! All changes made in this file will be lost!

fromPyQt5importQtCore,QtGui,QtWidgets

classUi_MainWindow(object):

defsetupUi(self,MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(800,600)

self.centralwidget=QtWidgets.QWidget(MainWindow)

self.centralwidget.setObjectName("centralwidget")

self.printLogButton=QtWidgets.QPushButton(self.centralwidget)

self.printLogButton.setGeometry(QtCore.QRect(190,30,381,51))

self.printLogButton.setObjectName("printLogButton")

self.textEdit=QtWidgets.QTextEdit(self.centralwidget)

self.textEdit.setGeometry(QtCore.QRect(150,190,461,341))

self.textEdit.setObjectName("textEdit")

self.clearLogButton=QtWidgets.QPushButton(self.centralwidget)

self.clearLogButton.setGeometry(QtCore.QRect(190,110,381,51))

self.clearLogButton.setObjectName("clearLogButton")

MainWindow.setCentralWidget(self.centralwidget)

self.menubar=QtWidgets.QMenuBar(MainWindow)

self.menubar.setGeometry(QtCore.QRect(0,0,800,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)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

defretranslateUi(self,MainWindow):

_translate=QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow","MainWindow"))

self.printLogButton.setText(_translate("MainWindow","打印Log"))

self.clearLogButton.setText(_translate("MainWindow","清除Log"))

MainController.py(Control腳本,處理MainView邏輯)

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

importMainView

importsys

importrandom

fromPyQt5.QtWidgetsimportQApplication

fromPyQt5.QtWidgetsimportQMainWindow

fromPyQt5importQtCore,QtGui,QtWidgets

classMainController():

defdo(self):

app=QApplication(sys.argv)

mainWindow=QMainWindow()

self.mainView=MainView.Ui_MainWindow()

self.mainView.setupUi(mainWindow)

self.mainView.printLogButton.clicked.connect(self.printLogClick)

self.mainView.clearLogButton.clicked.connect(self.clearLogClick)

# 重定向輸出

sys.stdout=EmittingStream(textWritten=self.normalOutputWritten)

sys.stderr=EmittingStream(textWritten=self.normalOutputWritten)

mainWindow.show()

sys.exit(app.exec_())

defprintLogClick(self):

print(random.random())

defclearLogClick(self):

self.mainView.textEdit.clear()

defnormalOutputWritten(self,text):

cursor=self.mainView.textEdit.textCursor()

cursor.movePosition(QtGui.QTextCursor.End)

cursor.insertText(text)

self.mainView.textEdit.setTextCursor(cursor)

self.mainView.textEdit.ensureCursorVisible()

classEmittingStream(QtCore.QObject):

textWritten=QtCore.pyqtSignal(str)

defwrite(self,text):

self.textWritten.emit(str(text))

當(dāng)所有準(zhǔn)備就緒后,我們來運(yùn)行測試一下我們的成果吧~

最后編輯:2020-10-09作者:網(wǎng)蟲蟲

分享是一種快樂;

分享是一種美德;

分享是一種幸福!

總結(jié)

以上是生活随笔為你收集整理的python操作界面_Python使用PyQt5的Designer工具创建UI界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。