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 ...
随机推荐
- faceswap requirements
tqdm psutil pathlib==1.0.1 scandir==1.7 opencv-python scikit-image scikit-learn matplotlib==2.2.2 ff ...
- 软件工程网络15个人作业4(201521123010徐璐琳)——alpha阶段个人总结
一.个人总结 1. 总结自己的alpha 过程: 经过了两周的ALPHA阶段,在这之中学习到了很多,因为最开始其实是有抱着一种应付的.将就着的心理去做这个小程序,但是在完成项目的过程中,有老师和助教一 ...
- hdu 1425
题目 这道题用快排做总是会超时,但是别人的快排就不会超时,最后看博客说最保险的方法还是用哈希的思想[哈希思想:散列再循环,对每一个数字进行通过改变哈希表的地址散列放置,将散列地址的哈希表记为1,这样 ...
- Python学习-16.Python中的错误处理
虽然叫错误,但跟 C# 中的异常是一回事.只不过 Python 中叫错误(Error)而 C# 中叫异常(Exception). 先手工产生一个异常: file = open('','r') 上面一句 ...
- RequestHelper
Request["param"] 全部 Request.QueryString["param"] get Request.Form["param&qu ...
- 再也不用线上倒数据了,使用 Faker 来造一批假的数据吧。
背景每当建表之后,常常需要写一批假的数据,用于测试算法.数据量的压力测试.列表翻页. 查看详情.数据关联等.这时就需要借助一款造数据的工具,它就是今天所要介绍的 Faker. 介绍 Faker 这个工 ...
- Net系列框架-Dapper+简单三层架构
Net系列框架-Dapper+简单三层架构 工作将近6年多了,工作中也陆陆续续学习和搭建了不少的框架,后续将按由浅入深的方式,整理出一些框架源码,所有框架源码本人都亲自调试通过,如果有问题,欢迎联系我 ...
- reids 安装
第一步:在VMware中安装CentOS(参考Linux教程中的安装虚拟机) 第二步:在Linux下安装gcc环境 [root@hadoop ~]#yum install gcc-c++ 第三步:将下 ...
- JavaScript编程题(含腾讯2016校招题)
作者:ManfredHu 链接:http://www.manfredhu.com/2016/04/02/15-veryGoodForUsing/ 声明:版权所有,转载请保留本段信息,否则请不要转载 几 ...
- cpu缓存java性能问题初探
在内存与cpu寄存器之间,还有一块区域叫做cpu高速缓存,即我们常常说的cache. cache分为L1.L2.L3三级缓存,速度递减,离cpu越来越远,L1.L2每个内核自己都有,L3是每个插槽上的 ...