Python -- Gui编程 -- Qt库的使用 -- 菜单与对话框
1.菜单
import sys from PyQt4 import QtCore, QtGui class MyWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setWindowTitle('QtMenu') self.resize(485, 300) menubar = self.menuBar() file = menubar.addMenu('&File') file.addAction('Open') file.addAction('Save') file.addSeparator() file.addAction('Close') edit = menubar.addMenu('&Edit') edit.addAction('Copy') edit.addAction('Paste') edit.addAction('Cut') edit.addAction('Select All') help = menubar.addMenu('&Help') help.addAction('About') app = QtGui.QApplication(sys.argv) mywindow = MyWindow() mywindow.show() app.exec_()
qtMenu.py
2.菜单事件
import sys from PyQt4 import QtGui, QtCore class MyWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setWindowTitle('QtMenuAction') self.resize(485, 300) self.lbl = QtGui.QLabel('Menu Action') self.lbl.setAlignment(QtCore.Qt.AlignCenter) self.setCentralWidget(self.lbl) menubar = self.menuBar() self.file = menubar.addMenu('&File') self.open = self.file.addAction('Open') self.save = self.file.addAction('Save') self.file.addSeparator() self.close = self.file.addAction('Close') self.connect(self.open, QtCore.SIGNAL('triggered()'), self.onOpen) self.connect(self.save, QtCore.SIGNAL('triggered()'), self.onSave) self.connect(self.close, QtCore.SIGNAL('triggered()'), self.onClose) def onOpen(self): self.lbl.setText('Menu Action: Open') def onSave(self): self.lbl.setText('Menu Action: Save') def onClose(self): self.lbl.setText('Menu Action: Close') def contextMenuEvent(self, event): self.file.exec_(event.globalPos()) app = QtGui.QApplication(sys.argv) mywindow = MyWindow() mywindow.show() app.exec_()
qtMenuAction.py
3.消息框
import sys from PyQt4 import QtGui, QtCore class MyWindow(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) self.setWindowTitle('QtMessageBox') self.resize(485, 300) self.btn1 = QtGui.QPushButton('About') self.btn2 = QtGui.QPushButton('About Qt') self.btn3 = QtGui.QPushButton('Critical') self.btn4 = QtGui.QPushButton('Information') self.btn5 = QtGui.QPushButton('Question') self.btn6 = QtGui.QPushButton('Warning') grid = QtGui.QGridLayout() grid.addWidget(self.btn1, 0, 0) grid.addWidget(self.btn2, 0, 1) grid.addWidget(self.btn3, 0, 2) grid.addWidget(self.btn4, 1, 0) grid.addWidget(self.btn5, 1, 1) grid.addWidget(self.btn6, 1, 2) self.setLayout(grid) self.connect(self.btn1, QtCore.SIGNAL('clicked()'), self.onBtn1) self.connect(self.btn2, QtCore.SIGNAL('clicked()'), self.onBtn2) self.connect(self.btn3, QtCore.SIGNAL('clicked()'), self.onBtn3) self.connect(self.btn4, QtCore.SIGNAL('clicked()'), self.onBtn4) self.connect(self.btn5, QtCore.SIGNAL('clicked()'), self.onBtn5) self.connect(self.btn6, QtCore.SIGNAL('clicked()'), self.onBtn6) def onBtn1(self): QtGui.QMessageBox.about(self, 'Qt', 'about') def onBtn2(self): QtGui.QMessageBox.aboutQt(self, 'Qt') def onBtn3(self): QtGui.QMessageBox.critical(self, 'Qt', 'critical', QtGui.QMessageBox.Abort, QtGui.QMessageBox.Retry, QtGui.QMessageBox.Ignore) def onBtn4(self): QtGui.QMessageBox.information(self, 'Qt', 'information') def onBtn5(self): QtGui.QMessageBox.question(self, 'Qt', 'question', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No, QtGui.QMessageBox.Cancel) def onBtn6(self): QtGui.QMessageBox.warning(self, 'Qt', 'warinng', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) app = QtGui.QApplication(sys.argv) mywindow = MyWindow() mywindow.show() app.exec_()
pyMessageBox.py
4.标准对话框
import sys from PyQt4 import QtGui, QtCore class MyWindow(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) self.setWindowTitle('QtStandardDialog') self.resize(485, 300) self.lbl = QtGui.QLabel() self.btn1 = QtGui.QPushButton('File') self.btn2 = QtGui.QPushButton('Font') self.btn3 = QtGui.QPushButton('Color') grid = QtGui.QGridLayout() grid.addWidget(self.lbl, 0, 0, 1, 3) grid.addWidget(self.btn1, 1, 0) grid.addWidget(self.btn2, 1, 1) grid.addWidget(self.btn3, 1, 2) self.setLayout(grid) self.connect(self.btn1, QtCore.SIGNAL('clicked()'), self.onBtn1) self.connect(self.btn2, QtCore.SIGNAL('clicked()'), self.onBtn2) self.connect(self.btn3, QtCore.SIGNAL('clicked()'), self.onBtn3) def onBtn1(self): filename = QtGui.QFileDialog.getOpenFileName(self, 'open') if filename: self.lbl.setText(filename) def onBtn2(self): font, ok = QtGui.QFontDialog.getFont() if ok: self.lbl.setText(font.key()) def onBtn3(self): color = QtGui.QColorDialog.getColor() if color.isValid(): self.lbl.setText(color.name()) app = QtGui.QApplication(sys.argv) mywindow = MyWindow() mywindow.show() app.exec_()
qtStandardDialog.py
5.自定义对话框
import sys from PyQt4 import QtCore, QtGui class MyDialog(QtGui.QDialog): def __init__(self): QtGui.QDialog.__init__(self) self.lbl = QtGui.QLabel('Input:') self.txt = QtGui.QLineEdit() self.btn1 = QtGui.QPushButton('OK') self.btn2 = QtGui.QPushButton('Cancel') grid = QtGui.QGridLayout() grid.addWidget(self.lbl, 0, 0) grid.addWidget(self.txt, 0, 1) grid.addWidget(self.btn1, 1, 0) grid.addWidget(self.btn2, 1, 1) self.setLayout(grid) self.connect(self.btn1, QtCore.SIGNAL('clicked()'), self.onBtn1) self.connect(self.btn2, QtCore.SIGNAL('clicked()'), self.onBtn2) def onBtn1(self): self.text = self.txt.text() self.done(1) def onBtn2(self): self.done(0) class MyWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setWindowTitle('QtDialog') self.resize(485, 300) self.btn = QtGui.QPushButton('Click Here') self.setCentralWidget(self.btn) self.connect(self.btn, QtCore.SIGNAL('clicked()'), self.onBtn) def onBtn(self): mydialog = MyDialog() r = mydialog.exec_() if r: self.btn.setText(mydialog.text) app = QtGui.QApplication(sys.argv) mywindow = MyWindow() mywindow.show() app.exec_()
pyDialog.py
Python -- Gui编程 -- Qt库的使用 -- 菜单与对话框的更多相关文章
- Python -- Gui编程 -- Qt库的使用 -- 配置资源文件
1.源文件(qtRes.py) import sys from PyQt4 import QtCore, QtGui, uic class MyDialog(QtGui.QDialog): def _ ...
- Python -- Gui编程 -- Qt库的使用 -- 布局与基本控件
1.垂直布局,水平布局和网格布局 import sys from PyQt4 import QtCore, QtGui class MyWindow(QtGui.QWidget): def __ini ...
- C/C++ -- Gui编程 -- Qt库的使用 -- 使用.ui文件
1.创建Qt空工程 2.添加Qt设计师界面,无按钮对话框helloqt.ui 3.编辑界面,添加部件,修改对话框对象名为HelloQt <?xml version="1.0" ...
- C/C++ -- Gui编程 -- Qt库的使用 -- 理解主窗体构造函数
MyWidget做父窗体 MyWidget的构造函数中可以手动添加组件 Ui::MyWidget存放子部件 Ui::MyWidget执行setupUi()函数为子部件开辟空间,指定父窗体 MyWidg ...
- C/C++ -- Gui编程 -- Qt库的使用 -- 标准对话框
-----mywidget.cpp----- #include "mywidget.h" #include "ui_mywidget.h" #include & ...
- C/C++ -- Gui编程 -- Qt库的使用 -- 信号与槽 -- 欢迎界面
程序运行先显示一个对话框,确定进入主程序 1.新建Qt工程,类MyWidget,基类QWidget 2.新建设计师界面类MyDialog,基类QDialog 3.-----main.cpp----- ...
- C/C++ -- Gui编程 -- Qt库的使用 -- 信号与槽的关联
Qt信号与槽的三种关联方法:1.设计界面关联,编辑信号/槽,自动关联 2.手动关联(1).头文件中定义槽 -----mywidget.h----- #ifndef MYWIDGET_H #define ...
- C/C++ -- Gui编程 -- Qt库的使用 -- Qt5总结
主要变化: 1.与Qt4相比,Qt5可以直接显示中文不需要手工转码2.Qt5模块发生变化,大部分组件并入widgets模块 注意事项:工程文件加一句greaterThan(QT_MAJOR_VERSI ...
- C/C++ -- Gui编程 -- Qt库的使用 -- Qt5试用
1.头文件<QtGui>变成了<QtWidgets> 相应<QtGui/***>变成了<QtWidgets/***> 2.QTextCodec::set ...
随机推荐
- C/C++中如何获取数组的长度?
C/C++中如何获取数组的长度? 收藏 C.C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方 ...
- 配置好Nginx后,通过flume收集日志到hdfs(记得生成本地log时,不要生成一个文件,)
生成本地log最好生成多个文件放在一个文件夹里,特别多的时候一个小时一个文件 配置好Nginx后,通过flume收集日志到hdfs 可参考flume的文件 用flume的案例二 执行的注意点 avro ...
- SpringMVC 示例实战教程
一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...
- 如何关闭D10 启动后自动打开的 WelCome页
在快捷方式上 修改为 "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\bds.exe" -pDelphi -np 最后增加 ...
- EnyimMemcached中用DateTime参数设置过期后赋值有问题的解决.
环境: win10 64位.memcached 1.4.4 64位.EnyimMemcached 2.16.0(ps:2.13.0也有此问题,别的版本就没试了). EnyimMemcached git ...
- C#八大排序算法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Restframework 权限permission 组件实例-2
1.在视图类里添加权限组件 class BookView(APIView): authentication_classes = [UserAuth] permission_classes = [SVI ...
- python中 使用join()方法 对各种数据类型中元的素进行合并拼接
"连接符".join(列表或元组或字符串或字典) 返回的是一个使用连接符进行拼接的字符串 如果对象是列表,元组,就是以一个下标元素为单位进行拼接 如果对象是字符串,就是一个单词元素 ...
- MySQL(ORM框架)
day63 参考:http://www.cnblogs.com/wupeiqi/articles/5713330.html SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件, ...
- hdu4462--曼哈顿距离
题目大意:有N*N个点的田野,然后有k个点是用来放稻草人的,每个稻草人对周围满足曼哈顿距离的庄稼有保护作用 问最小的稻草人的个数能够保护所有庄稼,如果不能保护则输出-1 注意的地方: 1.放稻草人的点 ...