(Create simple GUI Applications with Python and Qt学习,信号,toolbar,menu)

照着视频打。。

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_()

效果图:
效果图

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值