PyQt4学习
2015-05-30 00:00
309 查看
摘要: PyQt4python
PyQt的简介和基本安装方法读者可以自行google解决。先声明,本文章教基础,参考《征服Python》相关章节。不过不得不说,pyQt的教程真的好少,╮(╯▽╰)╭,悲催,大家有什么好的资料推荐一下,谢谢了。
先建立一个基本的界面看看:
运行结果:
然后我们添加一个标签:
效果如下:
基本布局:
效果:
按钮基本使用
不过按钮2当你点击的时候才显示出来哦
现在看看单行文本和多行文本
单选和复选框
现在看看菜单:
点击右键也可以看看哦
现在是对话框的代码:
现在是文件选择,字体选择,颜色选择框:
现在还是对话框:
最后一个是利用Designer写的
利用他设计一个简单的界面,只有一个标签和一个文本框
代码如下:
PyQt的简介和基本安装方法读者可以自行google解决。先声明,本文章教基础,参考《征服Python》相关章节。不过不得不说,pyQt的教程真的好少,╮(╯▽╰)╭,悲催,大家有什么好的资料推荐一下,谢谢了。
先建立一个基本的界面看看:
1 2 3 4 5 6 7 8 9 10 11 12 | import sys from PyQt4 import QtCore,QtGui class MyWindow( QtGui.QMainWindow ): def __init__( self ): QtGui.QMainWindow.__init__( self ) self .setWindowTitle( "PyQt" ) self .resize( 300 , 200 ) app = QtGui.QApplication( sys.argv ) mywindow = MyWindow() mywindow.show() app.exec_() |
然后我们添加一个标签:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #coding=utf-8 #标签的使用 import sys from PyQt4 import QtCore,QtGui class Window( QtGui.QMainWindow ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 200 , 300 ) #添加标签 label = QtGui.QLabel( "label" ) label.setAlignment( QtCore.Qt.AlignCenter) self .setCentralWidget(label) app = QtGui.QApplication( sys.argv ) demo = Window() demo.show() app.exec_() |
基本布局:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #coding=gbk import sys from PyQt4 import QtCore,QtGui class Window( QtGui.QWidget ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 500 , 500 ) hBoxLayout1 = QtGui.QHBoxLayout() label1 = QtGui.QLabel( "Label1" ) label2 = QtGui.QLabel( "Label2" ) label3 = QtGui.QLabel( "Label3" ) label4 = QtGui.QLabel( "Label4" ) label5 = QtGui.QLabel( "Label5" ) #---------添加表格布局 gridLayout = QtGui.QGridLayout() gridLayout.addWidget( label1, 0 , 0 ) gridLayout.addWidget( label2, 0 , 1 ) gridLayout.addWidget( label3, 0 , 2 ) gridLayout.addWidget( label4, 1 , 0 ) gridLayout.addWidget( label5, 1 , 1 ) self .setLayout(gridLayout) #-------添加水平布局 #hBoxLayout1.addWidget( label1) #hBoxLayout1.addWidget( label2) #hBoxLayout1.addWidget( label3) #hBoxLayout1.addWidget( label4) #hBoxLayout1.addWidget( label5) # #self.setLayout(hBoxLayout1) #---------添加垂直布局 #vBoxLayout = QtGui.QVBoxLayout() #vBoxLayout.addWidget( label1) #vBoxLayout.addWidget( label2) #vBoxLayout.addWidget( label3) #vBoxLayout.addWidget( label4) #vBoxLayout.addWidget( label5) # #self.setLayout(vBoxLayout ) # app = QtGui.QApplication( sys.argv ) demo = Window() demo.show() app.exec_() |
按钮基本使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #coding=utf-8 #按钮操作 import sys from PyQt4 import QtGui,QtCore class Window( QtGui.QWidget ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 500 , 500 ) gridlayout = QtGui.QGridLayout() button1 = QtGui.QPushButton( "button1" ) gridlayout.addWidget(button1, 0 , 0 , 1 , 3 ) button2 = QtGui.QPushButton( "button2" ) button2.setFlat( True ) gridlayout.addWidget(button2, 1 , 1 , 1 , 3 ) self .setLayout(gridlayout) app = QtGui.QApplication( sys.argv ) demo = Window() demo.show() app.exec_() |
现在看看单行文本和多行文本
#coding=utf-8 import sys from PyQt4 import QtGui,QtCore class Window( QtGui.QWidget ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 500 , 500 ) gridlayout = QtGui.QGridLayout() str = "hello" #这里中文乱码,纠结 label = QtGui.QLabel( str ) label.setAlignment( QtCore.Qt.AlignCenter) textFile = QtGui.QLineEdit() gridlayout.addWidget(label, 0 , 0 ) gridlayout.addWidget(textFile) passwordFile = QtGui.QLineEdit() passwordFile.setEchoMode( QtGui.QLineEdit.Password ) gridlayout.addWidget(passwordFile) textArea = QtGui.QTextEdit() textArea.setText( "asdasda" ) gridlayout.addWidget(textArea) self .setLayout(gridlayout) app = QtGui.QApplication( sys.argv ) window = Window() window.show() app.exec_() |
import sys from PyQt4 import QtGui,QtCore class Window( QtGui.QWidget ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 500 , 500 ) hboxlayout = QtGui.QHBoxLayout() self .radio1 = QtGui.QRadioButton( "radio1" ) self .radio2 = QtGui.QRadioButton( "radio2" ) self .radio3 = QtGui.QRadioButton( "radio3" ) self .radio1.setChecked( True ) hboxlayout.addWidget( self .radio1) hboxlayout.addWidget( self .radio2) hboxlayout.addWidget( self .radio3) checkbox1 = QtGui.QCheckBox( "checkbox1" ) checkbox2 = QtGui.QCheckBox( "checkbox2" ) checkbox3 = QtGui.QCheckBox( "checkbox3" ) checkbox1.setChecked( True ) hboxlayout.addWidget(checkbox1) hboxlayout.addWidget(checkbox2) hboxlayout.addWidget(checkbox3) self .button = QtGui.QPushButton( "Ok" ) hboxlayout.addWidget( self .button) self .connect( self .button,QtCore.SIGNAL( 'clicked()' ), self .OnButton ) self .setLayout(hboxlayout) def OnButton( self ): if self .radio2.isChecked(): self .radio2.setText( "haha" ) app = QtGui.QApplication( sys.argv ) win = Window() win.show() app.exec_() |
#coding=utf-8 #菜单事件 import sys from PyQt4 import QtGui,QtCore class Window( QtGui.QMainWindow ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 500 , 500 ) menubar = self .menuBar() self . file = menubar.addMenu( '&File' ) open = self . file .addAction( 'Open' ) self .connect( open ,QtCore.SIGNAL( 'triggered()' ), self .OnOpen ) save = self . file .addAction( 'Save' ) self .connect(save,QtCore.SIGNAL( 'triggered()' ), self .OnSave ) self . file .addSeparator() close = self . file .addAction( "Close" ) self .connect(close,QtCore.SIGNAL( 'triggered()' ), self .OnClose ) self .label = QtGui.QLabel( "this is a google test" ) self .label.setAlignment( QtCore.Qt.AlignCenter) self .setCentralWidget( self .label) def OnOpen( self ): self .label.setText( "open" ) def OnSave( self ): self .label.setText( "save" ) def OnClose( self ): self .close() def contextMenuEvent( self ,event ): self . file .exec_( event.globalPos() ) app = QtGui.QApplication( sys.argv ) win = Window() win.show() app.exec_() |
现在是对话框的代码:
#coding=utf-8 #对话框 import sys from PyQt4 import QtGui,QtCore class Window( QtGui.QWidget ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 500 , 500 ) gridlayout = QtGui.QGridLayout() self .AboutButton = QtGui.QPushButton( "About" ) gridlayout.addWidget( self .AboutButton, 0 , 0 ) self .AboutQtButton = QtGui.QPushButton( "AboutQt" ) gridlayout.addWidget( self .AboutQtButton, 0 , 1 ) self .CriticalButton = QtGui.QPushButton( "CriticalButton" ) gridlayout.addWidget( self .CriticalButton, 1 , 0 ) self .InfoButton = QtGui.QPushButton( "Info" ) gridlayout.addWidget( self .InfoButton, 1 , 1 ) self .QuestionButton = QtGui.QPushButton( "Question" ) gridlayout.addWidget( self .QuestionButton, 2 , 0 ) self .WarningButton = QtGui.QPushButton( "Warning" ) gridlayout.addWidget( self .WarningButton, 2 , 1 ) spacer = QtGui.QSpacerItem( 200 , 80 ) gridlayout.addItem( spacer, 3 , 1 , 1 , 5 ) self .setLayout(gridlayout) self .connect( self .AboutButton,QtCore.SIGNAL( 'clicked()' ), self .OnAboutButton ) self .connect( self .AboutQtButton,QtCore.SIGNAL( 'clicked()' ), self .OnAboutQtButton ) self .connect( self .CriticalButton,QtCore.SIGNAL( 'clicked()' ), self .OnCriticalButton ) self .connect( self .InfoButton,QtCore.SIGNAL( 'clicked()' ), self .OnInfoButton ) self .connect( self .QuestionButton,QtCore.SIGNAL( 'clicked()' ), self .OnQuestionButton ) self .connect( self .WarningButton,QtCore.SIGNAL( 'clicked()' ), self .OnWarningButton ) def OnAboutButton( self ): QtGui.QMessageBox.about( self , 'PyQt' , "About" ) def OnAboutQtButton( self ): QtGui.QMessageBox.aboutQt( self , "PyQt" ) def OnCriticalButton( self ): r = QtGui.QMessageBox.critical( self , "PyQT" , "CriticalButton" ,QtGui.QMessageBox.Abort, QtGui.QMessageBox.Retry,QtGui.QMessageBox.Ignore ) if r = = QtGui.QMessageBox.Abort: self .setWindowTitle( "Abort" ) elif r = = QtGui.QMessageBox.Retry: self .setWindowTitle( "Retry" ) elif r = = QtGui.QMessageBox.Ignore: self .setWindowTitle( "Ignore" ) else : pass def OnInfoButton( self ): QtGui.QMessageBox.information( self , "Pyqt" , "information" ) def OnQuestionButton( self ): r = QtGui.QMessageBox.question( self , "PyQt" , "Question" ,QtGui.QMessageBox.Yes,QtGui.QMessageBox.No,QtGui.QMessageBox.Cancel ) def OnWarningButton( self ): r = QtGui.QMessageBox.warning( self , "PyQT" , "warning" ,QtGui.QMessageBox.Yes,QtGui.QMessageBox.No ) app = QtGui.QApplication( sys.argv ) win = Window() win.show() app.exec_() |
#coding=utf-8 import sys from PyQt4 import QtGui,QtCore class Window( QtGui.QWidget ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 500 , 500 ) gridlayout = QtGui.QGridLayout() self .button1 = QtGui.QPushButton( "File" ) self .button2 = QtGui.QPushButton( "Font" ) self .button3 = QtGui.QPushButton( "Color" ) gridlayout.addWidget( self .button1) gridlayout.addWidget( self .button2) gridlayout.addWidget( self .button3) spacer = QtGui.QSpacerItem( 200 , 80 ) gridlayout.addItem( spacer, 3 , 1 , 1 , 3 ) self .setLayout(gridlayout) self .connect( self .button1,QtCore.SIGNAL( 'clicked()' ), self .OnButton1 ) self .connect( self .button2,QtCore.SIGNAL( 'clicked()' ), self .OnButton2 ) self .connect( self .button3,QtCore.SIGNAL( 'clicked()' ), self .OnButton3 ) def OnButton1( self ): fileName = QtGui.QFileDialog.getOpenFileName( self , 'Open' ) if not fileName.isEmpty(): self .setWindowTitle(fileName) def OnButton2( self ): font,ok = QtGui.QFontDialog.getFont() if ok: self .setWindowTitle(font.key() ) def OnButton3( self ): color = QtGui.QColorDialog.getColor() if color.isValid(): self .setWindowTitle(color.name() ) app = QtGui.QApplication( sys.argv ) win = Window() win.show() app.exec_() |
#coding=utf-8 import sys from PyQt4 import QtGui,QtCore class MyDialog( QtGui.QDialog ): def __init__( self ): super ( MyDialog, self ).__init__() self .setWindowTitle( "Dialog" ) self .gridlayout = QtGui.QGridLayout() self .label = QtGui.QLabel( "Please Input:" ) self .textField = QtGui.QLineEdit() self .okButton = QtGui.QPushButton( "OK" ) self .cancalButton = QtGui.QPushButton( "Cancel" ) self .gridlayout.addWidget( self .label, 0 , 0 ) self .gridlayout.addWidget( self .textField, 0 , 1 ) self .gridlayout.addWidget( self .cancalButton, 0 , 2 ) self .gridlayout.addWidget( self .okButton, 0 , 3 ) self .connect( self .okButton,QtCore.SIGNAL( 'clicked()' ), self .OnOk ) self .connect( self .cancalButton,QtCore.SIGNAL( 'clicked()' ), self .OnCancel ) self .setLayout( self .gridlayout) def OnOk( self ): self .text = self .textField.text() self .done( 1 ) def OnCancel( self ): self .done( 0 ) class Window( QtGui.QWidget ): def __init__( self ): super ( Window, self ).__init__() self .setWindowTitle( "hello" ) self .resize( 400 , 300 ) hboxlayout = QtGui.QGridLayout() self .creatDialogButton = QtGui.QPushButton( "Create a new Dialog" ) hboxlayout.addWidget( self .creatDialogButton) self .setLayout(hboxlayout) self .connect( self .creatDialogButton,QtCore.SIGNAL( 'clicked()' ), self .OnButton ) def OnButton( self ): dialog = MyDialog() r = dialog.exec_() if r: self .creatDialogButton.setText( dialog.text) app = QtGui.QApplication( sys.argv ) win = Window() win.show() app.exec_() |
利用他设计一个简单的界面,只有一个标签和一个文本框
代码如下:
#coding=utf-8
import
sys
from
PyQt4
import
QtGui,QtCore,uic
class
MyDialog( QtGui.QDialog ):
def
__init__(
self
):
super
( MyDialog,
self
).__init__()
uic.loadUi(
"res.ui"
,
self
)
class
MyWindow( QtGui.QWidget ):
def
__init__(
self
):
super
( MyWindow,
self
).__init__()
self
.setWindowTitle(
"hello"
)
self
.resize(
300
,
200
)
gridlayout
=
QtGui.QGridLayout()
self
.button
=
QtGui.QPushButton(
"CreateDialog"
)
gridlayout.addWidget(
self
.button)
self
.setLayout(gridlayout)
self
.connect(
self
.button,QtCore.SIGNAL(
'clicked()'
),
self
.OnButtoN )
def
OnButtoN(
self
):
dialog
=
MyDialog()
r
=
dialog.exec_();
if
r:
self
.button.setText( dialog.textField.text() )
app
=
QtGui.QApplication( sys.argv )
demo
=
MyWindow()
demo.show()
app.exec_()
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法
- Python实现的基于ADB的Android远程工具