当前位置: 首页 > news >正文

装修网站设计平台/上海seo优化bwyseo

装修网站设计平台,上海seo优化bwyseo,开发小程序需要多久,网页制作平台播放视频本篇介绍PyQt5的多窗口应用,在设计程序界面时候,经常会用到多窗口界面。新建两个窗口一个主窗口QMainWindow,一个QWidget。在主窗口中放入一个QTabWidget作为窗体的容器,没有子窗体时候QTabWidget不会显示。在子窗体中放入一个QPl…

本篇介绍PyQt5的多窗口应用,在设计程序界面时候,经常会用到多窗口界面。

新建两个窗口

一个主窗口QMainWindow,一个QWidget。在主窗口中放入一个QTabWidget作为窗体的容器,没有子窗体时候QTabWidget不会显示。在子窗体中放入一个QPlainText文本显示控件,显示文本内容。

7c11a07ddf7309731f74ce35b48fd8bd.png

主窗口

a86fe3edc738af110df2d239a5349077.png

子窗口

主窗体设计

  • paintEvent(self, event):重写paintEvent时间,当窗口大小发生改变时候,自动重新绘制背景图片。
  • taWidget_tabCloseRequest(self, index):关闭QTableWidget中的一个窗口。每个窗口都有一个不同的索引index,可以通过不同的index来切换或者删除界面。
  • actDockWidget_triggered(self):嵌入窗口按钮的槽函数,先实例化一个Form,直接在QTabWidget添加界面tab,这个方法是让子窗体显示在QTableWidget控件中。
  • actSeqWidget_triggered(self):独立的窗口按钮槽函数。用show()来显示窗口。newForm1.setWindowOpacity(0.9)是用来显示窗口的透明度。
class MainWindow(QMainWindow, Ui_MainWindow):    currentPath = os.getcwd()    def __init__(self, parent=None):        super(MainWindow, self).__init__(parent)        self.setupUi(self)        self.tabWidget.setVisible(False)        self.tabWidget.clear()        self.tabWidget.setTabsClosable(True)        self.tabWidget.setDocumentMode(True)        # self.setWindowState(Qt.WindowMaximized)        self.setAutoFillBackground(True)        self.background = QPixmap(self.currentPath+"Images4.jpg")        self.tabWidget.tabCloseRequested.connect(self.taWidget_tabCloseRequest)        self.actDockWidget.triggered.connect(self.actDockWidget_triggered)        self.actSepWidget.triggered.connect(self.actSeqWidget_triggered)    def paintEvent(self, event):        painter = QPainter(self)        painter.drawPixmap(0, self.toolBar.height(), self.width(), self.height()-self.toolBar.height()                           -self.statusBar().height(), self.background)        super(MainWindow, self).paintEvent(event)    def tabWidget_indexChanged(self):        tabExist = self.tabWidget.count() > 0        self.tabWidget.setVisible(tabExist)    def taWidget_tabCloseRequest(self, index):        if index >= 0:            form = self.tabWidget.widget(index)            form.close()        else:            return    def actDockWidget_triggered(self):        try:            newForm1 = Form1(self)            newForm1.setAttribute(Qt.WA_DeleteOnClose)            newForm1.fileOpen.connect(self.fileChanged)            title = "page %d" % self.tabWidget.count()            curIndex = self.tabWidget.addTab(newForm1, title)            self.tabWidget.setCurrentIndex(curIndex)            self.tabWidget.setVisible(True)        except Exception as e:            print(e)    def fileChanged(self, fileName):        index = self.tabWidget.currentIndex()        self.tabWidget.setTabText(index, fileName)    def actSeqWidget_triggered(self):        newForm1 = Form1(self)        newForm1.setAttribute(Qt.WA_DeleteOnClose)        newForm1.setWindowTitle("独立的窗口")        newForm1.setWindowFlag(Qt.Window, True)        newForm1.setWindowOpacity(0.9)        newForm1.show()

子窗体设计

  • initForm(self):Form1是继承了QWidget类,在UI Designer中无法通过工具栏来添加Action,只能通过代码创建Action。
  • actOpen_triggered(self):本篇只演示一个打开文件的案例,其余的可参考以前的Demo,这里不做过多的赘述。读取一个txt或者py文件。
class Form1(QWidget):    currentPath = os.getcwd()    fileOpen = pyqtSignal(str)    def __init__(self, parent=None):        super(Form1, self).__init__(parent)        self.form1 = Ui_Form1()        self.form1.setupUi(self)        self.initForm()        self.form1.actOpen.triggered.connect(self.actOpen_triggered)    def initForm(self):        toolBar = QToolBar("文档编辑", self)        toolBar.addAction(self.form1.actOpen)        toolBar.addAction(self.form1.actFont)        toolBar.addSeparator()        toolBar.addAction(self.form1.actCut)        toolBar.addAction(self.form1.actCopy)        toolBar.addAction(self.form1.actPaste)        toolBar.addSeparator()        toolBar.addAction(self.form1.actRedo)        toolBar.addAction(self.form1.actUndo)        toolBar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)        layout = QVBoxLayout()        layout.addWidget(toolBar)        layout.addWidget(self.form1.plainTextEdit)        layout.setContentsMargins(2, 2, 2, 2)        layout.setSpacing(2)        self.setLayout(layout)    def actOpen_triggered(self):        file, flt = QFileDialog.getOpenFileName(self, "打开一个文件", self.currentPath, "文本文件(*.txt, *.py)")        if file == "":            return        self.form1.plainTextEdit.clear()        openFile = open(file, 'r', encoding='UTF-8')        for i in openFile:            self.form1.plainTextEdit.appendPlainText(i.strip())        font = self.form1.plainTextEdit.font()        font.setPointSize(10)        self.form1.plainTextEdit.setFont(font)        baseFileName = os.path.basename(file)        self.setWindowTitle(baseFileName)        self.fileOpen.emit(baseFileName)

运行一下

a1c9244605263de6511eccc67e2871af.gif

嵌入式窗口

ac60fbbc5bccdf3c1406e20ad388b9ca.gif

独立窗口

一个简单的案例介绍多窗口的使用,如果需要源代码可关注私聊,感谢支持!!!!

http://www.lbrq.cn/news/1338355.html

相关文章:

  • 移动网站开发培训/合肥seo按天收费
  • 滨州哪里有做网站的/永久免费域名申请
  • 医疗类网站哪家做的好/常用的网络营销策略有哪些
  • 哪个网站做美食自媒体更好/微信营销成功案例8个
  • 微信网站改版价格/灰色关键词排名技术
  • 企业网站建设申请域名/汽车行业网站建设
  • 如何做网站的搜索栏/seo的英文全称是什么
  • 视频直播软件有哪些/seo教程视频论坛
  • 蔬菜派送网站怎么做/百度网盘下载的文件在哪
  • 天津网站建设制作排名/重庆seo排名公司
  • 天津建设教育培训网/免费seo搜索优化
  • 伍佰亿网站怎么做/推广网络营销案例
  • 网站的站长是什么意思/网盟推广平台
  • 做网站设计是什么专业/sem分析是什么意思
  • 网站做推广应该如何来做呢哪里推广/网站推广方案有哪些
  • 推荐几个做网站比较好的公司/seo网址超级外链工具
  • 哪些网站seo做的好/郑州企业网站seo
  • 中文网站建设中模板下载/湖南关键词优化首选
  • 如何自己学做网站/网站注册地址
  • 专业做网站的团队/aso优化平台有哪些
  • 做网站好还是阿里巴巴好/产品销售推广方案
  • 手机建站图片/优化百度涨
  • 语言互动网站建设/网站seo快速
  • 网络广告营销的一般过程/郑州搜索引擎优化公司
  • 优质的低价网站建设/搜索引擎优化课程
  • 网站301如何做/免费手机优化大师下载安装
  • 国外免费logo设计网站/邀请注册推广赚钱
  • 导航网站教程/百度推广怎么做效果好
  • 返利网站怎么做的/免费培训网站
  • 用.aspx做网站/烟台seo
  • Kubernetes生产环境健康检查自动化指南
  • 揭开内容分发网络(CDN)的神秘面纱:互联网的隐形加速器
  • 井字游戏的强化学习
  • 一些js数组去重的实现算法
  • Ubuntu 安装 Kibana
  • (三)全栈(部署)