Python Qt GUI快速编程-第五章的例子pen的python3+pytq5+Qt Designer实现
2016-12-30 15:54
1006 查看
本文是本人用python3+pytq5+Qt Designer实现Python Qt GUI快速编程-第五章的例子Pen,请大家参考。
pen设置的界面的按钮用buttonBox替代了,而非书中用两个按钮。
#/home/yrd/eric_workspace/pen/Ui_pen.py
#/home/yrd/eric_workspace/pen/pen.py
#/home/yrd/eric_workspace/pen/Ui_Form.py
#/home/yrd/eric_workspace/pen/Form.py
运行Form.py结果如下:
pen设置的界面的按钮用buttonBox替代了,而非书中用两个按钮。
#/home/yrd/eric_workspace/pen/Ui_pen.py
# -*- coding: utf-8 -*- from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(332, 162) Dialog.setSizeGripEnabled(True) self.widget = QtWidgets.QWidget(Dialog) self.widget.setGeometry(QtCore.QRect(10, 10, 311, 141)) self.widget.setObjectName("widget") self.gridLayout = QtWidgets.QGridLayout(self.widget) self.gridLayout.setContentsMargins(3, 3, 3, 3) self.gridLayout.setVerticalSpacing(5) self.gridLayout.setObjectName("gridLayout") self.widthLabel = QtWidgets.QLabel(self.widget) self.widthLabel.setObjectName("widthLabel") self.gridLayout.addWidget(self.widthLabel, 0, 0, 1, 1) self.widthSpinBox = QtWidgets.QSpinBox(self.widget) self.widthSpinBox.setObjectName("widthSpinBox") self.gridLayout.addWidget(self.widthSpinBox, 0, 1, 1, 1) self.beveledCheckBox = QtWidgets.QCheckBox(self.widget) self.beveledCheckBox.setChecked(True) self.beveledCheckBox.setObjectName("beveledCheckBox") self.gridLayout.addWidget(self.beveledCheckBox, 0, 2, 1, 1) self.styleLabel = QtWidgets.QLabel(self.widget) self.styleLabel.setObjectName("styleLabel") self.gridLayout.addWidget(self.styleLabel, 1, 0, 1, 1) self.styleComboBox = QtWidgets.QComboBox(self.widget) self.styleComboBox.setObjectName("styleComboBox") self.styleComboBox.addItem("") self.styleComboBox.addItem("") self.styleComboBox.addItem("") self.styleComboBox.addItem("") self.styleComboBox.addItem("") self.gridLayout.addWidget(self.styleComboBox, 1, 1, 1, 2) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setContentsMargins(3, 3, 3, 3) self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.buttonBox = QtWidgets.QDialogButtonBox(self.widget) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setCenterButtons(False) self.buttonBox.setObjectName("buttonBox") self.horizontalLayout.addWidget(self.buttonBox) self.horizontalLayout.setStretch(0, 1) self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 3) self.gridLayout.setColumnStretch(1, 1) self.widthLabel.setBuddy(self.widthSpinBox) self.styleLabel.setBuddy(self.styleComboBox) self.retranslateUi(Dialog) self.buttonBox.accepted.connect(Dialog.accept) self.buttonBox.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Pen")) self.widthLabel.setText(_translate("Dialog", "&Width:")) self.beveledCheckBox.setText(_translate("Dialog", "&Beveled edges")) self.styleLabel.setText(_translate("Dialog", "&Style:")) self.styleComboBox.setItemText(0, _translate("Dialog", "Solid")) self.styleComboBox.setItemText(1, _translate("Dialog", "Dashed")) self.styleComboBox.setItemText(2, _translate("Dialog", "Dotted")) self.styleComboBox.setItemText(3, _translate("Dialog", "DashDotted")) self.styleComboBox.setItemText(4, _translate("Dialog", "DashDotDotted")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())
#/home/yrd/eric_workspace/pen/pen.py
# -*- coding: utf-8 -*- """ Module implementing pen. """ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog from Ui_pen import Ui_Dialog class pen(QDialog, Ui_Dialog): """ Class documentation goes here. """ def __init__(self, parent=None): """ Constructor @param parent reference to the parent widget @type QWidget """ super(pen, self).__init__(parent) self.setupUi(self)
#/home/yrd/eric_workspace/pen/Ui_Form.py
# -*- coding: utf-8 -*- from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(307, 120) Form.setSizeGripEnabled(True) self.widget = QtWidgets.QWidget(Form) self.widget.setGeometry(QtCore.QRect(10, 10, 281, 101)) self.widget.setObjectName("widget") self.gridLayout = QtWidgets.QGridLayout(self.widget) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") self.penButton = QtWidgets.QPushButton(self.widget) self.penButton.setObjectName("penButton") self.gridLayout.addWidget(self.penButton, 0, 0, 1, 1) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 0, 1, 1, 1) spacerItem1 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem1, 1, 0, 1, 1) self.label = QtWidgets.QLabel(self.widget) self.label.setTextFormat(QtCore.Qt.RichText) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 2, 0, 1, 2) self.gridLayout.setRowStretch(2, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Pen")) self.penButton.setText(_translate("Form", "Set Pen... (Dumb &class)")) self.label.setText(_translate("Form", "The Pen has not been set")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QDialog() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_())
#/home/yrd/eric_workspace/pen/Form.py
# -*- coding: utf-8 -*- """ Module implementing Form. """ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog,QApplication from Ui_Form import Ui_Form from pen import pen import sys class Form(QDialog, Ui_Form): """ Class documentation goes here. """ def __init__(self, parent=None): """ Constructor @param parent reference to the parent widget @type QWidget """ super(Form, self).__init__(parent) self.setupUi(self) self.width = 1 self.beveled = False self.style = "Solid" self.penButton.clicked.connect(self.setPenProperties) self.updateData() def updateData(self): bevel = "" if self.beveled: bevel = "<br>Beveled" self.label.setText("Width = {0}<br>Style = {1}{2}".format( self.width, self.style, bevel)) def setPenProperties(self): pendialog = pen(self) pendialog.widthSpinBox.setValue(self.width) pendialog.beveledCheckBox.setChecked(self.beveled) pendialog.styleComboBox.setCurrentIndex( pendialog.styleComboBox.findText(self.style)) if pendialog.exec_(): self.width = pendialog.widthSpinBox.value() self.beveled = pendialog.beveledCheckBox.isChecked() self.style = str(pendialog.styleComboBox.currentText()) self.updateData() if __name__ == "__main__": app = QApplication(sys.argv) dlg=Form() dlg.show() sys.exit(app.exec_())
运行Form.py结果如下:
相关文章推荐
- Python Qt GUI快速编程-第五章的例子Numbers的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第四章的Exercise例子Interest的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第四章的Currency例子的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第五章的exercise的python3+pytq5+Qt Dersinger实现
- Python Qt GUI快速编程-第四章的digit的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第四章的计算器python3+pytq5+Qt Designer实现
- Qt Gui快速编程 第五章 源码
- PYTHON QT GUI快速编程 PYQT编程指南pdf
- Python Qt GUI快速编程第六章代码分析
- 用python3+PyQt5改写Python Qt GUI快速编程的第七章实例Find Dialog
- 用python3+PyQt5改写Python Qt GUI快速编程的第6章实例主窗口
- 用python3+PyQt5改写Python Qt GUI快速编程的第6章实例主窗口 信号及槽如何使用
- Python GUI编程各种实现的对比
- Python GUI编程各种实现的对比
- python3.6+pyqt5 IDE: Pycahrm+Qtdesign 快速开发GUI程序学习资源
- 【编程练习】快速排序,Java和Python实现
- Python-GUI编程之 Tkinter 与 记事本实现心得
- 翻译:《用python和Qt进行GUI编程》——介绍
- 黑白棋算法简单实现与基于Qt的GUI编程的综合应用
- python 实现GUI(图形用户界面)编程