日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 69视频免费 | 精品中文字幕在线观看 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | av片网| 日韩av麻豆| 欧美日韩一区二区三区电影 | 五月天婷婷在线观看 | 玖玖视频 | 特种兵之深入敌后 | 国产免费久久久 | 黄色大全免费观看 | 成年人黄色大全 | 免费的毛片视频 | 一区二区国产欧美 | 免费看一级黄色片 | 黄色片xxx | 狠狠操狠狠摸 | 男女网站免费 | 一区二区在线免费看 | 美女被啪羞羞粉色视频 | 国产精品va在线观看无码 | 师生出轨h灌满了1v1 | 无码无遮挡又大又爽又黄的视频 | 四虎精品在线播放 | 无码 制服 丝袜 国产 另类 | 五月激情丁香 | 久久久久三级 | 亚洲一级av无码毛片精品 | 午夜黄色网址 | 国产综合久久久久久鬼色 | 91蜜桃网站 | 亚洲欧美另类视频 | 91精品人妻一区二区三区果冻 | 亚洲在线视频免费观看 | 欧美黄色大片免费看 | 欧美色xxxxx 日本精品一区二区三区四区的功能 | 日韩一区二区久久 | 国产三级短视频 | 高清乱码免费 | 日韩在线第二页 | 91大神视频在线播放 | 亚洲精品综合在线观看 | av电影一区二区三区 | 成人一区二 | 国产成人综合在线 | 99在线视频免费观看 | 欧美精品少妇 | 中文字字幕在线中文乱码电影 | 久操免费在线视频 | 国内精品国产三级国产aⅴ久 | 91一起草 | 国产精品免费一区二区三区都可以 | 国模私拍大尺度裸体av | 久久久久久久久网站 | 琪琪原网址| av中文字幕一区二区 | 亚洲AV午夜精品 | 国产免费观看视频 | 九九热在线播放 | 日本丰满大乳奶做爰 | 成人午夜视频在线 | 国产传媒视频在线 | 婷婷综合色| 亚洲天堂网一区二区 | 欧美色亚洲色 | av手机在线免费观看 | 456av| 久久永久视频 | 国产大片黄 | 高清一二三区 | 国产ts人妖调教重口男 | 秋霞av在线 | 阿v天堂在线观看 | 欧美精品动漫 | 成人免费av在线 | 精品一区二区在线观看视频 | 国产综合视频一区 | 久久精品国产亚洲AV无码男同 | 日韩有码电影 | 亚洲图片中文字幕 | 麻豆成人精品国产免费 | 熟妇女人妻丰满少妇中文字幕 | 欧美日韩中文字幕在线 | 午夜在线精品偷拍 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 超碰在线影院 | 欧美激情一区二区视频 | 日日射日日操 | 污污污污污污www网站免费 | 91人妻一区二区三区 | 女女高潮h冰块play失禁百合 | 日韩视频在线视频 | 最新天堂中文在线 | 国产欧美日韩一区 | 国产精品一区二区欧美 | 8x8ⅹ国产精品一区二区 | 熟女少妇一区二区 | 亚色视频 | 91精品免费看 |