经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
使用Python库pyqt5制作TXT阅读器(一)-------UI设计
来源:cnblogs  作者:pikeduo  时间:2023/1/11 8:46:05  对本文有异议

项目地址:https://github.com/pikeduo/TXTReader
PyQt5中文手册:https://maicss.gitbook.io/pyqt-chinese-tutoral/pyqt5/
QtDesigner学习地址:https://youcans.blog.csdn.net/article/details/120640342

一、前期准备

QtDesigner是一个可视化的GUI设计工具,首先我们要在pycharm上配置QtDesigner,用来设计ui,确保你已经安装了pyqt5库。

  1. pip install pyqt5

点击File->Settings->Tools->External Tools,点击+添加外部工具。
在这里插入图片描述
下面是QtDesigner的一些配置

Name:QtDesigner 可自定义
Program:E:\项目根目录\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Arguments:不用填
Workig directory: $ProjectFileDir$\QtDesigner\UI

其中Program填designer.exe的地址,如果找不到在哪里,则在pycharm主界面连续点击两次Shift,进入搜索界面搜索。
在这里插入图片描述
记住要将右上角的框勾上。
工作目录里$ProjectFileDir$是项目根目录,QtDesigner\UI是自己创建的目录,可自行选择是否创建,设计的ui文件会保存到这个目录下。
在这里插入图片描述
点击ok后,再点击aplay,如果没点的话则设置不成功且要成功设置。
接下来配置pyUIC,将qrc文件转化为py文件,配置如下

Name:puUIC 可自定义
Program:E:\项目地址\venv\Scripts\python.exe
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension\(.py Workig directory: \$ProjectFileDir\)\QtDesigner\UI

在这里插入图片描述
最后是配置pyrc,将资源文件转换为py文件,配置如下

Name:qrcTopy 可自定义
Program:E:\项目地址\venv\Scripts\pyrcc5.exe
Arguments:-o ../$FileNameWithoutExtension\(_rc.py \$FileNameWithoutExtension\).qrc
Workig directory: $FileDir$

注意,Arguments中../$FileNameWithoutExtension\(_rc.py加了../,代表要将编译后的py文件存储到父目录,因为qrc文件是存储在resource目录下,文件名加了_rc是因为每次设计完ui,将ui文件编译成py文件后,会`import \$FileNameWithoutExtension\)_rc.py`,为了方便,干脆直接加上_rc。
在这里插入图片描述
我的目录结构如下
在这里插入图片描述

二、UI设计

(1)主窗口

依次点击Tools->External Tools->QtDesigner,打开QtDesigner,创建一个窗口。
在这里插入图片描述
在右边属性编辑器里,设置窗口的最小大小为1280X720。
在这里插入图片描述
添加窗口图标,图标来源于阿里矢量图库
在右边属性编辑器找到windowIcon,选择资源
在这里插入图片描述
点击左上角的笔编辑资源,新建资源文件,在你的项目resource目录下新建一个resource.qrc文件。
在这里插入图片描述
在右下角加号添加一个前缀icon,然后添加文件,将文件全部复制过来,选择一个文件作为图标。
在这里插入图片描述
快捷键Ctrl+R可以预览ui界面。
在这里插入图片描述
右边对象查看器,在主窗口下添加一个工具栏
在这里插入图片描述
主窗口设计完毕,接下来是将ui文件和qrc文件转换为py文件。
找到ui文件,右键,External Tools->pyUIC,然后可以看到在同目录下生成了UIReader.py文件

  1. # -*- coding: utf-8 -*-
  2. # Form implementation generated from reading ui file 'UIReader.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.15.4
  5. #
  6. # WARNING: Any manual changes made to this file will be lost when pyuic5 is
  7. # run again. Do not edit this file unless you know what you are doing.
  8. from PyQt5 import QtCore, QtGui, QtWidgets
  9. class Ui_MainWindow(object):
  10. def setupUi(self, MainWindow):
  11. MainWindow.setObjectName("MainWindow")
  12. MainWindow.resize(1280, 720)
  13. MainWindow.setMinimumSize(QtCore.QSize(1280, 720))
  14. icon = QtGui.QIcon()
  15. icon.addPixmap(QtGui.QPixmap(":/icon/reader.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  16. MainWindow.setWindowIcon(icon)
  17. self.centralwidget = QtWidgets.QWidget(MainWindow)
  18. self.centralwidget.setObjectName("centralwidget")
  19. self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
  20. self.gridLayout_2.setObjectName("gridLayout_2")
  21. MainWindow.setCentralWidget(self.centralwidget)
  22. self.menubar = QtWidgets.QMenuBar(MainWindow)
  23. self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 26))
  24. self.menubar.setObjectName("menubar")
  25. MainWindow.setMenuBar(self.menubar)
  26. self.statusbar = QtWidgets.QStatusBar(MainWindow)
  27. self.statusbar.setObjectName("statusbar")
  28. MainWindow.setStatusBar(self.statusbar)
  29. self.toolBar = QtWidgets.QToolBar(MainWindow)
  30. self.toolBar.setObjectName("toolBar")
  31. MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
  32. self.retranslateUi(MainWindow)
  33. QtCore.QMetaObject.connectSlotsByName(MainWindow)
  34. def retranslateUi(self, MainWindow):
  35. _translate = QtCore.QCoreApplication.translate
  36. MainWindow.setWindowTitle(_translate("MainWindow", "TXT阅读器"))
  37. MainWindow.setStatusTip(_translate("MainWindow", "TXT阅读器"))
  38. self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
  39. import resource_rc

代码中包含一些累赘的信息,这是因为在QtDesigner中,如果你设置布局后又删除,在ui文件中还会保存这些信息。
找到resource.qrc文件,右键,External Tools->qrtTopy,将resource.qrc文件转换为py文件,可以看到在项目根目录下生成了resource_rc.py文件。
在创建一个main.py文件,调用UIReader.py文件,运行显示主窗口。

  1. import sys
  2. from PyQt5.QtWidgets import QMainWindow, QApplication
  3. from QtDesigner.UI.UIReader import Ui_MainWindow
  4. class MyMainWindow(QMainWindow, Ui_MainWindow): # 继承 QMainWindow 类和 Ui_MainWindow 界面类
  5. def __init__(self, parent=None):
  6. super(MyMainWindow, self).__init__(parent) # 初始化父类
  7. self.setupUi(self) # 继承 Ui_MainWindow 界面类
  8. if __name__ == '__main__':
  9. app = QApplication(sys.argv) # 在 QApplication 方法中使用,创建应用程序对象
  10. myWin = MyMainWindow() # 实例化 MyMainWindow 类,创建主窗口
  11. myWin.show() # 在桌面显示控件 myWin
  12. sys.exit(app.exec_()) # 结束进程,退出程序

在这里插入图片描述
虽然窗口图标有了,但是最小化图标还没有,在main.py文件添加ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid"),发现图标显示出来了。
在这里插入图片描述

(2)菜单栏

在菜单栏添加一个文件菜单,建立两个子菜单,打开文件和打开最近的文件,为其添加图标。
注意子菜单栏名称不能直接输入中文,要在右边属性栏里更改。
在这里插入图片描述
在打开最近的文件里,再添加子菜单,注意其类从QAction变更为QMenu。
在这里插入图片描述
添加了一个子菜单后再删除,其类从QAction变更为了QMenu。
添加设置菜单栏,设置字体和颜色。
在这里插入图片描述
设置背景图片。
在这里插入图片描述
恢复默认设置。
在这里插入图片描述
然后是退出按钮。
在这里插入图片描述
因为QMenu类不能绑定动作,所以要建一个子菜单,为其绑定动作,可以添加快捷键,右边找到shortcut,按Ctrl+Q,快捷键设置完成。
右下角,信号和槽,绑定动作。
在这里插入图片描述
完成!编译完后运行。
在这里插入图片描述
UIReader.py的代码如下:

  1. # -*- coding: utf-8 -*-
  2. # Form implementation generated from reading ui file 'UIReader.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.15.4
  5. #
  6. # WARNING: Any manual changes made to this file will be lost when pyuic5 is
  7. # run again. Do not edit this file unless you know what you are doing.
  8. from PyQt5 import QtCore, QtGui, QtWidgets
  9. class Ui_MainWindow(object):
  10. def setupUi(self, MainWindow):
  11. MainWindow.setObjectName("MainWindow")
  12. MainWindow.resize(1280, 720)
  13. MainWindow.setMinimumSize(QtCore.QSize(1280, 720))
  14. icon = QtGui.QIcon()
  15. icon.addPixmap(QtGui.QPixmap(":/icon/reader.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  16. MainWindow.setWindowIcon(icon)
  17. self.centralwidget = QtWidgets.QWidget(MainWindow)
  18. self.centralwidget.setObjectName("centralwidget")
  19. self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
  20. self.gridLayout_2.setObjectName("gridLayout_2")
  21. MainWindow.setCentralWidget(self.centralwidget)
  22. self.menubar = QtWidgets.QMenuBar(MainWindow)
  23. self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 26))
  24. self.menubar.setObjectName("menubar")
  25. self.files = QtWidgets.QMenu(self.menubar)
  26. icon1 = QtGui.QIcon()
  27. icon1.addPixmap(QtGui.QPixmap(":/icon/files.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  28. self.files.setIcon(icon1)
  29. self.files.setObjectName("files")
  30. self.lastfile = QtWidgets.QMenu(self.files)
  31. icon2 = QtGui.QIcon()
  32. icon2.addPixmap(QtGui.QPixmap(":/icon/file_last.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  33. self.lastfile.setIcon(icon2)
  34. self.lastfile.setObjectName("lastfile")
  35. self.setting = QtWidgets.QMenu(self.menubar)
  36. icon3 = QtGui.QIcon()
  37. icon3.addPixmap(QtGui.QPixmap(":/icon/setting.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  38. self.setting.setIcon(icon3)
  39. self.setting.setObjectName("setting")
  40. self.fontcolor = QtWidgets.QMenu(self.setting)
  41. icon4 = QtGui.QIcon()
  42. icon4.addPixmap(QtGui.QPixmap(":/icon/fontcolor.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  43. self.fontcolor.setIcon(icon4)
  44. self.fontcolor.setObjectName("fontcolor")
  45. self.bg = QtWidgets.QMenu(self.setting)
  46. icon5 = QtGui.QIcon()
  47. icon5.addPixmap(QtGui.QPixmap(":/icon/bg.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  48. self.bg.setIcon(icon5)
  49. self.bg.setObjectName("bg")
  50. self.exit = QtWidgets.QMenu(self.menubar)
  51. icon6 = QtGui.QIcon()
  52. icon6.addPixmap(QtGui.QPixmap(":/icon/exit.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  53. self.exit.setIcon(icon6)
  54. self.exit.setObjectName("exit")
  55. MainWindow.setMenuBar(self.menubar)
  56. self.statusbar = QtWidgets.QStatusBar(MainWindow)
  57. self.statusbar.setObjectName("statusbar")
  58. MainWindow.setStatusBar(self.statusbar)
  59. self.toolBar = QtWidgets.QToolBar(MainWindow)
  60. self.toolBar.setObjectName("toolBar")
  61. MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
  62. self.actionfile = QtWidgets.QAction(MainWindow)
  63. icon7 = QtGui.QIcon()
  64. icon7.addPixmap(QtGui.QPixmap(":/icon/file.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  65. self.actionfile.setIcon(icon7)
  66. self.actionfile.setObjectName("actionfile")
  67. self.action1 = QtWidgets.QAction(MainWindow)
  68. self.action1.setObjectName("action1")
  69. self.actionfont = QtWidgets.QAction(MainWindow)
  70. icon8 = QtGui.QIcon()
  71. icon8.addPixmap(QtGui.QPixmap(":/icon/font.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  72. self.actionfont.setIcon(icon8)
  73. self.actionfont.setObjectName("actionfont")
  74. self.actioncolor = QtWidgets.QAction(MainWindow)
  75. icon9 = QtGui.QIcon()
  76. icon9.addPixmap(QtGui.QPixmap(":/icon/color.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  77. self.actioncolor.setIcon(icon9)
  78. self.actioncolor.setObjectName("actioncolor")
  79. self.actionimport = QtWidgets.QAction(MainWindow)
  80. icon10 = QtGui.QIcon()
  81. icon10.addPixmap(QtGui.QPixmap(":/icon/import.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  82. self.actionimport.setIcon(icon10)
  83. self.actionimport.setObjectName("actionimport")
  84. self.actionclose = QtWidgets.QAction(MainWindow)
  85. icon11 = QtGui.QIcon()
  86. icon11.addPixmap(QtGui.QPixmap(":/icon/close.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  87. self.actionclose.setIcon(icon11)
  88. self.actionclose.setObjectName("actionclose")
  89. self.actiondefault = QtWidgets.QAction(MainWindow)
  90. icon12 = QtGui.QIcon()
  91. icon12.addPixmap(QtGui.QPixmap(":/icon/default.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  92. self.actiondefault.setIcon(icon12)
  93. self.actiondefault.setObjectName("actiondefault")
  94. self.actionexit = QtWidgets.QAction(MainWindow)
  95. self.actionexit.setIcon(icon6)
  96. self.actionexit.setObjectName("actionexit")
  97. self.files.addAction(self.actionfile)
  98. self.files.addAction(self.lastfile.menuAction())
  99. self.fontcolor.addAction(self.actionfont)
  100. self.fontcolor.addAction(self.actioncolor)
  101. self.bg.addAction(self.actionimport)
  102. self.bg.addAction(self.actionclose)
  103. self.setting.addAction(self.fontcolor.menuAction())
  104. self.setting.addAction(self.bg.menuAction())
  105. self.setting.addAction(self.actiondefault)
  106. self.exit.addAction(self.actionexit)
  107. self.menubar.addAction(self.files.menuAction())
  108. self.menubar.addAction(self.setting.menuAction())
  109. self.menubar.addAction(self.exit.menuAction())
  110. self.retranslateUi(MainWindow)
  111. self.actionexit.triggered.connect(MainWindow.close)
  112. QtCore.QMetaObject.connectSlotsByName(MainWindow)
  113. def retranslateUi(self, MainWindow):
  114. _translate = QtCore.QCoreApplication.translate
  115. MainWindow.setWindowTitle(_translate("MainWindow", "TXT阅读器"))
  116. MainWindow.setStatusTip(_translate("MainWindow", "TXT阅读器"))
  117. self.files.setStatusTip(_translate("MainWindow", "文件"))
  118. self.files.setTitle(_translate("MainWindow", "文件"))
  119. self.lastfile.setTitle(_translate("MainWindow", "打开最近的文件"))
  120. self.setting.setToolTip(_translate("MainWindow", "设置"))
  121. self.setting.setStatusTip(_translate("MainWindow", "设置"))
  122. self.setting.setTitle(_translate("MainWindow", "设置"))
  123. self.fontcolor.setTitle(_translate("MainWindow", "字体和颜色"))
  124. self.bg.setTitle(_translate("MainWindow", "背景图片"))
  125. self.exit.setToolTip(_translate("MainWindow", "关闭应用"))
  126. self.exit.setStatusTip(_translate("MainWindow", "关闭应用"))
  127. self.exit.setTitle(_translate("MainWindow", "退出"))
  128. self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
  129. self.actionfile.setText(_translate("MainWindow", "打开文件"))
  130. self.actionfile.setStatusTip(_translate("MainWindow", "打开文件"))
  131. self.actionfile.setShortcut(_translate("MainWindow", "Ctrl+O"))
  132. self.action1.setText(_translate("MainWindow", "1"))
  133. self.actionfont.setText(_translate("MainWindow", "选择字体"))
  134. self.actionfont.setStatusTip(_translate("MainWindow", "选择字体"))
  135. self.actioncolor.setText(_translate("MainWindow", "选择背景颜色"))
  136. self.actioncolor.setStatusTip(_translate("MainWindow", "选择背景颜色"))
  137. self.actionimport.setText(_translate("MainWindow", "导入背景图片"))
  138. self.actionimport.setStatusTip(_translate("MainWindow", "导入背景图片"))
  139. self.actionclose.setText(_translate("MainWindow", "关闭背景图片"))
  140. self.actionclose.setStatusTip(_translate("MainWindow", "关闭背景图片"))
  141. self.actiondefault.setText(_translate("MainWindow", "恢复默认设置"))
  142. self.actiondefault.setStatusTip(_translate("MainWindow", "恢复默认设置"))
  143. self.actionexit.setText(_translate("MainWindow", "退出应用"))
  144. self.actionexit.setStatusTip(_translate("MainWindow", "退出应用"))
  145. self.actionexit.setShortcut(_translate("MainWindow", "Ctrl+Q"))
  146. import resource_rc

三、显示界面

显示页面需要一个目录和文本浏览器。
从左侧找到Tree Widget组件,拖到主窗口。在Tree Widget区域,右键编辑项目,添加列命名为章节列表,并将其布局设置为左边。
在这里插入图片描述
左侧找到Text Browser,拖到右边区域,并将整片区域设置为栅格布局。
在这里插入图片描述
为章节目录设置图标,右键编辑项目,在属性里添加图标。
在这里插入图片描述
保存,编译运行。

在这里插入图片描述
UI界面代码。

  1. # -*- coding: utf-8 -*-
  2. # Form implementation generated from reading ui file 'UIReader.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.15.4
  5. #
  6. # WARNING: Any manual changes made to this file will be lost when pyuic5 is
  7. # run again. Do not edit this file unless you know what you are doing.
  8. from PyQt5 import QtCore, QtGui, QtWidgets
  9. class Ui_MainWindow(object):
  10. def setupUi(self, MainWindow):
  11. MainWindow.setObjectName("MainWindow")
  12. MainWindow.resize(1280, 720)
  13. MainWindow.setMinimumSize(QtCore.QSize(1280, 720))
  14. icon = QtGui.QIcon()
  15. icon.addPixmap(QtGui.QPixmap(":/icon/reader.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  16. MainWindow.setWindowIcon(icon)
  17. self.centralwidget = QtWidgets.QWidget(MainWindow)
  18. self.centralwidget.setObjectName("centralwidget")
  19. self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
  20. self.gridLayout.setObjectName("gridLayout")
  21. self.treeWidget = QtWidgets.QTreeWidget(self.centralwidget)
  22. self.treeWidget.setObjectName("treeWidget")
  23. icon1 = QtGui.QIcon()
  24. icon1.addPixmap(QtGui.QPixmap(":/icon/catlogs.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  25. self.treeWidget.headerItem().setIcon(0, icon1)
  26. self.gridLayout.addWidget(self.treeWidget, 0, 0, 1, 1, QtCore.Qt.AlignLeft)
  27. self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
  28. self.textBrowser.setObjectName("textBrowser")
  29. self.gridLayout.addWidget(self.textBrowser, 0, 1, 1, 1)
  30. MainWindow.setCentralWidget(self.centralwidget)
  31. self.menubar = QtWidgets.QMenuBar(MainWindow)
  32. self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 26))
  33. self.menubar.setObjectName("menubar")
  34. self.files = QtWidgets.QMenu(self.menubar)
  35. icon2 = QtGui.QIcon()
  36. icon2.addPixmap(QtGui.QPixmap(":/icon/files.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  37. self.files.setIcon(icon2)
  38. self.files.setObjectName("files")
  39. self.lastfile = QtWidgets.QMenu(self.files)
  40. icon3 = QtGui.QIcon()
  41. icon3.addPixmap(QtGui.QPixmap(":/icon/file_last.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  42. self.lastfile.setIcon(icon3)
  43. self.lastfile.setObjectName("lastfile")
  44. self.setting = QtWidgets.QMenu(self.menubar)
  45. icon4 = QtGui.QIcon()
  46. icon4.addPixmap(QtGui.QPixmap(":/icon/setting.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  47. self.setting.setIcon(icon4)
  48. self.setting.setObjectName("setting")
  49. self.fontcolor = QtWidgets.QMenu(self.setting)
  50. icon5 = QtGui.QIcon()
  51. icon5.addPixmap(QtGui.QPixmap(":/icon/fontcolor.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  52. self.fontcolor.setIcon(icon5)
  53. self.fontcolor.setObjectName("fontcolor")
  54. self.bg = QtWidgets.QMenu(self.setting)
  55. icon6 = QtGui.QIcon()
  56. icon6.addPixmap(QtGui.QPixmap(":/icon/bg.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  57. self.bg.setIcon(icon6)
  58. self.bg.setObjectName("bg")
  59. self.exit = QtWidgets.QMenu(self.menubar)
  60. icon7 = QtGui.QIcon()
  61. icon7.addPixmap(QtGui.QPixmap(":/icon/exit.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  62. self.exit.setIcon(icon7)
  63. self.exit.setObjectName("exit")
  64. MainWindow.setMenuBar(self.menubar)
  65. self.statusbar = QtWidgets.QStatusBar(MainWindow)
  66. self.statusbar.setObjectName("statusbar")
  67. MainWindow.setStatusBar(self.statusbar)
  68. self.toolBar = QtWidgets.QToolBar(MainWindow)
  69. self.toolBar.setObjectName("toolBar")
  70. MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
  71. self.actionfile = QtWidgets.QAction(MainWindow)
  72. icon8 = QtGui.QIcon()
  73. icon8.addPixmap(QtGui.QPixmap(":/icon/file.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  74. self.actionfile.setIcon(icon8)
  75. self.actionfile.setObjectName("actionfile")
  76. self.action1 = QtWidgets.QAction(MainWindow)
  77. self.action1.setObjectName("action1")
  78. self.actionfont = QtWidgets.QAction(MainWindow)
  79. icon9 = QtGui.QIcon()
  80. icon9.addPixmap(QtGui.QPixmap(":/icon/font.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  81. self.actionfont.setIcon(icon9)
  82. self.actionfont.setObjectName("actionfont")
  83. self.actioncolor = QtWidgets.QAction(MainWindow)
  84. icon10 = QtGui.QIcon()
  85. icon10.addPixmap(QtGui.QPixmap(":/icon/color.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  86. self.actioncolor.setIcon(icon10)
  87. self.actioncolor.setObjectName("actioncolor")
  88. self.actionimport = QtWidgets.QAction(MainWindow)
  89. icon11 = QtGui.QIcon()
  90. icon11.addPixmap(QtGui.QPixmap(":/icon/import.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  91. self.actionimport.setIcon(icon11)
  92. self.actionimport.setObjectName("actionimport")
  93. self.actionclose = QtWidgets.QAction(MainWindow)
  94. icon12 = QtGui.QIcon()
  95. icon12.addPixmap(QtGui.QPixmap(":/icon/close.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  96. self.actionclose.setIcon(icon12)
  97. self.actionclose.setObjectName("actionclose")
  98. self.actiondefault = QtWidgets.QAction(MainWindow)
  99. icon13 = QtGui.QIcon()
  100. icon13.addPixmap(QtGui.QPixmap(":/icon/default.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  101. self.actiondefault.setIcon(icon13)
  102. self.actiondefault.setObjectName("actiondefault")
  103. self.actionexit = QtWidgets.QAction(MainWindow)
  104. self.actionexit.setIcon(icon7)
  105. self.actionexit.setObjectName("actionexit")
  106. self.files.addAction(self.actionfile)
  107. self.files.addAction(self.lastfile.menuAction())
  108. self.fontcolor.addAction(self.actionfont)
  109. self.fontcolor.addAction(self.actioncolor)
  110. self.bg.addAction(self.actionimport)
  111. self.bg.addAction(self.actionclose)
  112. self.setting.addAction(self.fontcolor.menuAction())
  113. self.setting.addAction(self.bg.menuAction())
  114. self.setting.addAction(self.actiondefault)
  115. self.exit.addAction(self.actionexit)
  116. self.menubar.addAction(self.files.menuAction())
  117. self.menubar.addAction(self.setting.menuAction())
  118. self.menubar.addAction(self.exit.menuAction())
  119. self.retranslateUi(MainWindow)
  120. self.actionexit.triggered.connect(MainWindow.close)
  121. QtCore.QMetaObject.connectSlotsByName(MainWindow)
  122. def retranslateUi(self, MainWindow):
  123. _translate = QtCore.QCoreApplication.translate
  124. MainWindow.setWindowTitle(_translate("MainWindow", "TXT阅读器"))
  125. MainWindow.setStatusTip(_translate("MainWindow", "TXT阅读器"))
  126. self.treeWidget.setToolTip(_translate("MainWindow", "章节目录"))
  127. self.treeWidget.setStatusTip(_translate("MainWindow", "章节目录"))
  128. self.treeWidget.headerItem().setText(0, _translate("MainWindow", "章节目录"))
  129. self.files.setStatusTip(_translate("MainWindow", "文件"))
  130. self.files.setTitle(_translate("MainWindow", "文件"))
  131. self.lastfile.setToolTip(_translate("MainWindow", "打开最近的文件"))
  132. self.lastfile.setStatusTip(_translate("MainWindow", "打开最近的文件"))
  133. self.lastfile.setTitle(_translate("MainWindow", "打开最近的文件"))
  134. self.setting.setToolTip(_translate("MainWindow", "设置"))
  135. self.setting.setStatusTip(_translate("MainWindow", "设置"))
  136. self.setting.setTitle(_translate("MainWindow", "设置"))
  137. self.fontcolor.setTitle(_translate("MainWindow", "字体和颜色"))
  138. self.bg.setTitle(_translate("MainWindow", "背景图片"))
  139. self.exit.setToolTip(_translate("MainWindow", "关闭应用"))
  140. self.exit.setStatusTip(_translate("MainWindow", "关闭应用"))
  141. self.exit.setTitle(_translate("MainWindow", "退出"))
  142. self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
  143. self.actionfile.setText(_translate("MainWindow", "打开文件"))
  144. self.actionfile.setStatusTip(_translate("MainWindow", "打开文件"))
  145. self.actionfile.setShortcut(_translate("MainWindow", "Ctrl+O"))
  146. self.action1.setText(_translate("MainWindow", "1"))
  147. self.actionfont.setText(_translate("MainWindow", "选择字体"))
  148. self.actionfont.setStatusTip(_translate("MainWindow", "选择字体"))
  149. self.actioncolor.setText(_translate("MainWindow", "选择背景颜色"))
  150. self.actioncolor.setStatusTip(_translate("MainWindow", "选择背景颜色"))
  151. self.actionimport.setText(_translate("MainWindow", "导入背景图片"))
  152. self.actionimport.setStatusTip(_translate("MainWindow", "导入背景图片"))
  153. self.actionclose.setText(_translate("MainWindow", "关闭背景图片"))
  154. self.actionclose.setStatusTip(_translate("MainWindow", "关闭背景图片"))
  155. self.actiondefault.setText(_translate("MainWindow", "恢复默认设置"))
  156. self.actiondefault.setStatusTip(_translate("MainWindow", "恢复默认设置"))
  157. self.actionexit.setText(_translate("MainWindow", "退出应用"))
  158. self.actionexit.setStatusTip(_translate("MainWindow", "退出应用"))
  159. self.actionexit.setShortcut(_translate("MainWindow", "Ctrl+Q"))
  160. import resource_rc

这样UI界面就初步设计完成了。

原文链接:https://www.cnblogs.com/pikeduo/p/17037171.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号