pythonGUI編程——Qt庫(1)


1.簡單示例實現一個小窗口。
       PyQt5是一種高級的語言,下面只有幾行代碼就能顯示一個小窗口。底層已經實現了窗口的基本功能。

#!/usr/bin/python
#coding:utf-8
#簡單的例子
import sys
#引入模塊,基本控件位於pyqt5.qtwidgets
from PyQt5.QtWidgets import QApplication,QWidget

if __name__ == '__main__':
#每一個pyqt5應用程序必須創建一個應用程序對象。
#sys.argv參數是一個列表,從命令行輸入參數
app = QApplication(sys.argv)
#QWidget部件是pyqt5所有用戶界面的基類。
w = QWidget()
#resize方法調整窗口大小。
w.resize(250,150)
#move()方法移動窗口在屏幕上的位置,窗口打開初始位置
w.move(300,300)
#設置窗口標題
w.setWindowTitle('hello')
#顯示在屏幕上
w.show()

#系統exit()方法確保應用程序干凈的退出
sys.exit(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
       將會顯示一個小窗口:
                                                 

2.在窗口左上角顯示一個小小的圖標。
#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIcon
#創建Example子類,並且繼承QWidegt父類
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
#設置窗口的位置和大小
self.setGeometry(300,300,300,300)
#設置窗口標題
self.setWindowTitle('hello')
#設置窗口的圖標,引用當前目錄下的圖片
self.setWindowIcon(QIcon('1.jpg'))
#顯示窗口
self.show()

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(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
       super()是一個特殊的函數,它的作用是將父類和子類關聯起來。將會顯示一個帶有皮卡丘圖標的小窗口:
                                                 

3.顯示一段按鈕提示語。
#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont,QIcon

class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
#這種靜態的方法用於顯示工具提示的字體。第二個參數為字體大小
QToolTip.setFont(QFont('ScanSerif',12))
#創建一個提示。
self.setToolTip('This is a <b>QWidegt</b> widget')
#創建一個按鈕並為它設置一個提示
btn = QPushButton('Button',self)
btn.setToolTip('This is a <b>QWidegt</b> widget')

#btn.sizeHint()顯示默認尺寸
btn.resize(btn.sizeHint())
#移動按鈕窗口的位置
btn.move(50,50)

#設置圖標
self.setWindowIcon(QIcon('1.jpg'))
self.setGeometry(300,300,300,300)
self.setWindowTitle('Tooltips')
self.show()

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(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
       運行效果圖:
                                          

4.設置點擊推出按鈕。
#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QWidget,QPushButton,QApplication
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QIcon
class Example(QWidget):

def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#設置按鈕,取名為Quit
qbtn = QPushButton('Quit',self)
#綁定點擊退出事件
qbtn.clicked.connect(lambda:QCoreApplication.instance().quit())
qbtn.resize(qbtn.sizeHint())
qbtn.move(50,50)

self.setGeometry(300,300,300,300)
self.setWindowTitle('Quit button')
self.setWindowIcon(QIcon('1.jpg'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(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
       代碼中lambda為匿名函數,不知道為啥綁定點擊退出事件的方法只有設置匿名函數之后才不會報錯,希望哪位大佬解答。

       運行效果圖點擊Quit可以關閉窗口:
                                          

5.設置關閉提示語,即點擊 X 號會有提示。
#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QWidget,QMessageBox,QApplication
from PyQt5.QtGui import QIcon

class Example(QWidget):

def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
self.setGeometry(300,300,300,300)
self.setWindowIcon(QIcon('1.jpg'))
self.setWindowTitle('Message box')
self.show()

def closeEvent(self,event):
'''
顯示一個消息框,兩個按鈕Yes 或者 No ,
第一個參數是出現的消息框名稱,
第二個參數是消息框顯示的文本,
第三個參數是選項Yes或者No,
第四個參數為默認選項No
'''
reply = QMessageBox.question(self,'Message',
"Are you sure to quit?",QMessageBox.Yes | QMessageBox.No,QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(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
       代碼中if語句為判斷點擊事件如果是yes就退出,如果是no就忽略。
       運行效果圖:
                                          

6.將窗口顯示在屏幕中央。
#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QWidget,QDesktopWidget,QApplication

class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.resize(250,150)
self.center()
self.setWindowTitle('center')
self.show()

#控制窗口到屏幕中心的方法
def center(self):
#獲得窗口
qr = self.frameGeometry()
#獲得屏幕中心點
cp = QDesktopWidget().availableGeometry().center()
#顯示到屏幕中心
qr.moveCenter(cp)
self.move(qr.topLeft())

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(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
       QtGui,QDesktopWidget類提供了用戶的桌面信息,包括屏幕大小。
       運行效果圖:
--------------------- 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM