QMainWindow与QAction

学习PyQt推荐大家看这本书:https://weread.qq.com/web/reader/6393267071ccfa97639f573

链接:https://pan.baidu.com/s/1diZ-cyjkvGNY-ONA88mjog 
提取码:9us9

import sys
from PyQt5.QtWidgets import (QApplication,QMainWindow,QActionGroup,QLabel,QProgressBar,QSpinBox,QFontComboBox)
from PyQt5.QtCore import Qt,pyqtSlot
from PyQt5 import QtCore
from PyQt5.QtGui import QTextCharFormat,QFont

from ui_Mainwindow import Ui_MainWindow
class QmyMainWindow(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)

        self.__buildUI()
        self.__spinFontSize.valueChanged[int].connect(self.do_fontSize_Changed)
        self.__comboFontName.currentIndexChanged[str].connect(self.do_fontName_Changed)
        self.setCentralWidget(self.ui.textEdit)
    def __buildUI(self):
        self.__LabFile=QLabel(self)
        self.__LabFile.setMinimumWidth(150)
        self.ui.statusBar.addWidget(self.__LabFile)

        self.__progressBar1=QProgressBar(self)
        self.__progressBar1.setMaximumWidth(200)
        self.__progressBar1.setMaximum(50)
        self.__progressBar1.setMinimum(5)
        sz=self.ui.textEdit.font().pointSize()
        self.__progressBar1.setValue(sz)
        self.ui.statusBar.addWidget(self.__progressBar1)#添加到状态栏

        self.__LabInfo=QLabel(self)
        self.__LabInfo.setText("选择字体名称:")
        self.ui.statusBar.addPermanentWidget(self.__LabInfo)

        actionGroup=QActionGroup(self)
        actionGroup.addAction(self.ui.actionhanyu)
        actionGroup.addAction(self.ui.actionyingyu)
        actionGroup.setExclusive(True)
        actionGroup.setExclusive(True)

        self.__spinFontSize=QSpinBox(self)
        self.__spinFontSize.setMinimum(5)
        self.__spinFontSize.setMaximum(50)
        sz=self.ui.textEdit.font().pointSize()
        self.__spinFontSize.setValue(sz)
        self.__spinFontSize.setMinimumWidth(50)
        self.ui.toolBar.addWidget(self.__spinFontSize)

        self.__comboFontName=QFontComboBox(self)
        self.__comboFontName.setMinimumWidth(100)
        self.ui.toolBar.addWidget(self.__comboFontName)

        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addAction(self.ui.actionClose)

    @pyqtSlot(int)
    def do_fontSize_Changed(self,fontSize):
        fmt=self.ui.textEdit.currentCharFormat()
        fmt.setFontPointSize(fontSize)
        self.ui.textEdit.mergeCurrentCharFormat(fmt)
        self.__progressBar1.setValue(fontSize)
    @pyqtSlot(str)
    def do_fontName_Changed(self,fontName):
        fmt=self.ui.textEdit.currentCharFormat()
        fmt.setFontFamily(fontName)
        self.ui.textEdit.mergeCurrentCharFormat(fmt)
        self.__LabInfo.setText("字体名称:%s "%fontName)
    @pyqtSlot(bool)
    def on_actionBold_triggered(self,checked):
        fmt=self.ui.textEdit.currentCharFormat()
        if(checked==True):
            fmt.setFontWeight(QFont.Bold)
        else:
            fmt.setFontWeight(QFont.Normal)
        self.ui.textEdit.mergeCurrentCharFormat(fmt)
    @pyqtSlot(bool)
    def on_actionItalic_triggered(self,checked):
        fmt=self.ui.textEdit.currentCharFormat()
        fmt.setFontItalic(checked)
        self.ui.textEdit.mergeCurrentCharFormat(fmt)
    @pyqtSlot(bool)
    def on_actionUnderline_triggered(self,checked):
        fmt=self.ui.textEdit.currentCharFormat()
        fmt.setFontUnderline(checked)
        self.ui.textEdit.mergeCurrentCharFormat(fmt)
    def on_actionNew_triggered(self):
        self.__LabFile.setText("新建文件")
    def on_actionSave_triggered(self):
        self.__LabFile.setText("保存文件")
    def on_actionOpen_triggered(self):
        self.__LabFile.setText("打开文件")


if __name__=="__main__":
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)#自适应缩放
    app=QApplication(sys.argv)
    form=QmyMainWindow()
    form.show()
    sys.exit(app.exec_())

QMainWindow与QAction_第1张图片

你可能感兴趣的:(Pyqt5)