照着视频打。。
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys
class MainWindow(QMainWindow): #QMainWindow的子类
my_awesome_signal = pyqtSignal(str) #定义一个信号
def __init__(self,*args,**kwargs): #构造函数
super(MainWindow,self).__init__(*args,**kwargs) #super()调用超类,使用其构造函数
#label =QLabel("A label") #定义一个label
#label.setAlignment(Qt.AlignCenter) #设置对齐方式
#self.setCentralWidget(label)#添加到窗口
self.windowTitleChanged.connect(lambda x:self.my_custom_fn(0))#窗口名改变调用lambda
self.setWindowTitle('My App')
#一堆pushButton(定义layout,定义button,layout中添加button,定义一个wiget,设置其layout,设置到窗口中)
layout = QHBoxLayout()
for n in range(10):
btn = QPushButton(str(n))
btn.pressed.connect(lambda x=n:self.my_custom_fn(x))
layout.addWidget(btn)
#self.setCentralWidget(btn)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
self.my_awesome_signal.connect(self.caught_my_signal)
#toolbar
toolbar = QToolBar("toolbar")
toolbar.setIconSize(QSize(16,16))#图标
self.addToolBar(toolbar)#添加toolbar到窗口
#给toolbar添加QAction
buttom_action= QAction(QIcon('img.jpg'),"buttom!",self)
buttom_action.setStatusTip('aaa')
buttom_action.triggered.connect(self.onMyToolbarclick)
buttom_action.setCheckable(True)
buttom_action.setShortcut(QKeySequence("Ctrl+p"))#快捷键
toolbar.addAction(buttom_action)#添加QAction到toolbar
#另一个toolbar
buttom_action = QAction(QIcon('img.jpg'), "buttom!", self)
buttom_action.setStatusTip('aaa')
buttom_action.triggered.connect(self.onMyToolbarclick)
buttom_action.setCheckable(True)
toolbar.addAction(buttom_action)
#添加checkbox到toolbar
toolbar.addWidget(QLabel('ckeckbox'))
toolbar.addWidget(QCheckBox())
#按钮说明。。Statusbar
self.setStatusBar(QStatusBar(self))
#添加menu
menu= self.menuBar()
menu.setNativeMenuBar(False) #disabies the global menu bar on MacOs
file_menu = menu.addMenu("&File")
file_menu.addAction(buttom_action)
#file_menu.addSeparator()
file_menu.addAction(QAction("QAction" , self))
sub_menu = file_menu.addMenu('&Sub-menu')
sub_menu.addAction(buttom_action)
def onWindowTitleChange(selfself,s):
print(s)
def my_custom_fn(self,a):
print(a)
self.my_awesome_signal.emit("WWWWW")
def caught_my_signal(self,s):
print(s)
def onMyToolbarclick(self,s):
print("click",s)
app = QApplication(sys.argv)
window=MainWindow()
window.show()
app.exec_()
效果图: