读Pyqt4教程,带你入门Pyqt4 _002
在这节教程中,我们将创建菜单和工具栏。
QMainWindow 类提供应用程序主窗口,可以创建一个经典的拥有状态栏、工具栏和菜单栏的应用程序骨架。
菜单栏
菜单栏是GUI应用程序最明显的部分之一,这是分布在各个菜单的命令组合,在控制台程序中你需要记住所有那些晦涩难懂的命令,有了这些公认的标准,将进一步缩短学习新应用程序的时间。
- #!/usr/bin/python
- # menubar.py
- import sys
- from PyQt4 import QtGui, QtCore
- class MainWindow(QtGui.QMainWindow):
- def __init__(self):
- QtGui.QMainWindow.__init__(self)
- self.resize(250, 150)
- self.setWindowTitle('menubar')
- exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)
- exit.setShortcut('Ctrl+Q')
- exit.setStatusTip('Exit application')
- self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
- self.statusBar()
- menubar = self.menuBar()
- file = menubar.addMenu('&File')
- file.addAction(exit)
- app = QtGui.QApplication(sys.argv)
- main = MainWindow()
- main.show()
- sys.exit(app.exec_())
- menubar = self.menuBar()
- file = menubar.addMenu('&File')
- file.addAction(exit)
首先我们使用``QMainWindow`` 类的 menuBar() 方法创建一个菜单栏,然后使用 addMenu() 方法增加一个菜单项,最后我们插入 Action 对象到文件菜单。
菜单栏(Mac OS X)
菜单栏(Ubuntu)
工具栏
菜单集合了应用程序中所有可用的命令,工具栏提供了快速访问最常用的命令功能。
- #!/usr/bin/python
- # toolbar.py
- import sys
- from PyQt4 import QtGui, QtCore
- class MainWindow(QtGui.QMainWindow):
- def __init__(self):
- QtGui.QMainWindow.__init__(self)
- self.resize(250, 150)
- self.setWindowTitle('toolbar')
- self.exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)
- self.exit.setShortcut('Ctrl+Q')
- self.connect(self.exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
- self.toolbar = self.addToolBar('Exit')
- self.toolbar.addAction(self.exit)
- app = QtGui.QApplication(sys.argv)
- main = MainWindow()
- main.show()
- sys.exit(app.exec_())
- self.exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)
- self.exit.setShortcut('Ctrl+Q')
GUI程序通过命令来控制,这些命令可以通过菜单、上下文菜单、工具栏或者快捷键来启动。PyQt引入了行为(Action)来简化开发。行为对象可以拥有菜单标题、图标、快捷键、状态栏内容、aasda“这是什么?”内容以及提示。在我们的例子中,我们定义了一个行为对象,包括图标、提示和快捷键。
- self.connect(self.exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
这里我们连接行为的 triggered() 信号到预定义的 close() 槽。
- self.toolbar = self.addToolBar('Exit')
- self.toolbar.addAction(self.exit)
这里我们我们创建了一个工具栏并把行为加了进去。
工具栏
放在一起
在这部分的最后一个例子中,我们将会创建一个菜单栏、工具栏和状态栏。
- #!/usr/bin/python
- # mainwindow.py
- import sys
- from PyQt4 import QtGui, QtCore
- class MainWindow(QtGui.QMainWindow):
- def __init__(self):
- QtGui.QMainWindow.__init__(self)
- self.resize(350, 250)
- self.setWindowTitle('mainwindow')
- textEdit = QtGui.QTextEdit()
- self.setCentralWidget(textEdit)
- exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)
- exit.setShortcut('Ctrl+Q')
- exit.setStatusTip('Exit application')
- self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
- self.statusBar()
- menubar = self.menuBar()
- file = menubar.addMenu('&File')
- file.addAction(exit)
- toolbar = self.addToolBar('Exit')
- toolbar.addAction(exit)
- app = QtGui.QApplication(sys.argv)
- main = MainWindow()
- main.show()
- sys.exit(app.exec_())
- textEdit = QtGui.QTextEdit()
- self.setCentralWidget(textEdit)
这里我们创建了一个文本编辑控件,把它设置成 QMainWinow 的中心组件。中心组件将会占据所有留下的空间。
QMainWindow(Ubuntu)
在PyQt4教程的这部分,我们创建了菜单和工具栏。
本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4526702.html
读Pyqt4教程,带你入门Pyqt4 _002的更多相关文章
- 读Pyqt4教程,带你入门Pyqt4 _009
QLineEdit QLineEdit 窗口组件用来输入或者编辑单行纯文本,有撤销/重做,剪切/粘贴和拖放功能. #!/usr/bin/python # -*- coding: utf-8 -*- # ...
- 读Pyqt4教程,带你入门Pyqt4 _005
对话框窗体或对话框是现代GUI应用不可或缺的一部分.dialog定义为两个或多个人之间的交谈.在计算机程序中dialog是一个窗体,用来和程序“交谈”.对话框用来输入数据.修改数据.改变程序设置等等. ...
- 读Pyqt4教程,带你入门Pyqt4 _004
在PyQt4教程的这部分中,我们将探讨应用中事件和信号的发生. 事件是GUI程序的重要部分,由用户或者系统产生.当我们调用应用的 exec_() 方法,应用进入主循环.主循环获取事件并把它们发往对象. ...
- 读Pyqt4教程,带你入门Pyqt4 _003
编程中的一个重要事情是布局管理,布局管理是如何在窗体上摆放窗口组件.可以有两种方式进行管理:绝对定位或使用布局类. 绝对定位 程序员用像素指定每个控件的位置和尺寸.使用绝对定位时,你必须理解几件事情. ...
- 读Pyqt4教程,带你入门Pyqt4 _013
你是否曾经看着应用程序并思考特定的GUI项是如何产生的?大概每位程序员都这样过.然后你能看到你喜欢的GUI库提供的一系列窗口组件,但是你无法找到它.工具包通常仅仅提供最常用的窗口组件,比如按钮.文本组 ...
- 读Pyqt4教程,带你入门Pyqt4 _012
颜色 颜色是指一个代表红(Red).绿(Green).蓝(Blue)(RGB)强度值组合的对象,有效的RGB值在0~255之间.我们可以用多种方式定义颜色,最常用的是RGB十进制或者十六进制值.也可以 ...
- 读Pyqt4教程,带你入门Pyqt4 _010
在PyQt4教程的这部分中,我们讨论拖放操作. 拖放(Drag-and-drop)指的是图形用户界面(Graphical user interface)中,在一个虚拟的对象上按着鼠标键将之拖曳到另一个 ...
- 读Pyqt4教程,带你入门Pyqt4 _006
窗口组件是应用程序的基本构建块.PyQt4编程工具包拥有范围广泛的各种窗口组件.按钮.选择框.滑块.列表框等等,程序员工作所需要的一切.在教程的这部分中,我们将介绍一些有用的窗口组件. QCheckB ...
- 读Pyqt4教程,带你入门Pyqt4 _008
QCalendarWidget QCalendarWidget 提供基于月份的日历窗口组件,它允许用户简单并且直观的选择日期. #!/usr/bin/python # -*- coding: utf- ...
随机推荐
- Python的内存管理和垃圾回收
内存管理 与Python对象创建相关的结构体 #define _PyObject_HEAD_EXTRA \ struct _object *_ob_next; \ struct _object *_o ...
- 《Docker从入门到跑路》之网络模型介绍
Bridge模式 当我们安装完docker后,启动Docker daemon,就会在主机上看到一个docker0的网桥,默认在此主机上启动的容器都会连接到这个网桥上.虚拟网桥的工作方式和物理交换机的工 ...
- golang server示例
一个简单的web服务器 package main import ( "fmt" "log" "net/http" ) func main() ...
- kafka学习 之 Quickstart
第一步:安装启动kafka 官网链接:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.3.0/kafka_2.11-2.3.0.tgz 进入指定 ...
- C++11之STL多线程
STL库跨平台: VS2010不支持std::thread库,至少VS2012/2013及其以上可以: 一.库概要 (1)std::thread成员函数 thread(fun, args...); / ...
- Programmatically add an application to Windows Firewall
Programmatically add an application to Windows Firewall 回答1 Not sure if this is the best way, but ...
- OpenWrt(LEDE)2020.4.12编译 UnPnP+NAS+多拨+网盘+DNS优化+帕斯沃 无缝集成
固件说明 基于Lede OpenWrt R2020.4.8版本(源码截止2020.4.12)Lienol Feed及若干自行维护的软件包 结合家庭x86软路由场景需要定制 按照家庭应用场景对固件及软件 ...
- 3、Hive-sql优化,数据倾斜处理
一.Hive-sql优化 #增加reducer任务数量(拉取数量分流) ; #在同一个sql中的不同的job是否可以同时运行,默认为false set hive.exec.parallel=true; ...
- Linux Kernel Makefiles Kbuild en
来自Linux kernel docs,顺便整理了一下排版 Linux Kernel Makefiles This document describes the Linux kernel Makefi ...
- neo4j 图数据库安装及介绍
neo4j 图数据库安装及介绍 一.neo4j图数据库介绍 图数据库,顾名思义就是利用了"图的数据结构来作为数据存储逻辑体现的一种数据库",所以要想学好图数据库当然需要了解一些关于 ...