Python3 PyQt5教程(2)

大家關(guān)注的教程2來了。
第一期是代碼布局,現(xiàn)在有更高級的布局方式,那就是Qt5,布局完UI可以用PythonUIC命令轉(zhuǎn)成py文件,添加import

    app = QApplication(sys.argv)
    widget = QMainWindow(None)
    Ui_MainWindow().setupUi(widget)

    sys.exit(app.exec_())
    pass

1.登陸界面
2.一個(gè)QTproject新建多個(gè)視圖
3.在窗體中打開新窗體
4.安裝QT

1.登陸

用QT可視化編程拖出來的界面就是這個(gè)樣子,用命令pyuic5 -o target.py fromfile.ui轉(zhuǎn)化成py文件,代碼如下

登陸

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/5/9 下午1:36
# @Author  : fgyong 簡書:_兜兜轉(zhuǎn)轉(zhuǎn)_  http://www.itdecent.cn/u/6d1254c1d145
# @Site    : http://fgyong.cn 兜兜轉(zhuǎn)轉(zhuǎn)的技術(shù)博客
# @File    : *.py
# @Software: PyCharm


from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(500, 341)
        MainWindow.move(1500,300)
        MainWindow.setWindowOpacity(1.0)
        MainWindow.setAutoFillBackground(True)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.accountLabel = QtWidgets.QLabel(self.centralWidget)
        self.accountLabel.setGeometry(QtCore.QRect(80, 110, 60, 21))
        self.accountLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.accountLabel.setObjectName("accountLabel")
        self.pwdLabel = QtWidgets.QLabel(self.centralWidget)
        self.pwdLabel.setGeometry(QtCore.QRect(80, 150, 60, 21))
        self.pwdLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.pwdLabel.setObjectName("pwdLabel")
        self.account = QtWidgets.QLineEdit(self.centralWidget)
        self.account.setGeometry(QtCore.QRect(140, 110, 191, 21))
        self.account.setObjectName("account")
        self.password = QtWidgets.QLineEdit(self.centralWidget)
        self.password.setGeometry(QtCore.QRect(140, 150, 191, 21))
        self.password.setObjectName("password")
        self.pushButton = QtWidgets.QPushButton(self.centralWidget)
        self.pushButton.setGeometry(QtCore.QRect(140, 191, 201, 41))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralWidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 500, 22))
        self.menuBar.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.menuBar.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
        self.menuBar.setInputMethodHints(QtCore.Qt.ImhNone)
        self.menuBar.setObjectName("menuBar")
        MainWindow.setMenuBar(self.menuBar)
        self.statusBar = QtWidgets.QStatusBar(MainWindow)
        self.statusBar.setObjectName("statusBar")
        MainWindow.setStatusBar(self.statusBar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
        MainWindow.show()

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "登陸"))
        self.accountLabel.setText(_translate("MainWindow", "賬號"))
        self.pwdLabel.setText(_translate("MainWindow", "密碼"))
        self.pushButton.setText(_translate("MainWindow", "登陸"))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    widget = QMainWindow(None)
    Ui_MainWindow().setupUi(widget)

    sys.exit(app.exec_())
    pass

2.一個(gè)QTproject新建多個(gè)視圖

如圖:


新建UI

然后在源文件->main.cpp 導(dǎo)入類,

#include "mainwindow.h"
#include "dialog.h"http://新建的文件
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;//默認(rèn)的文件
    Dialog d;//新建的文件

//    w.show();//默認(rèn)的注釋掉
    d.show();//新建的文件show

    return a.exec();
}

然后選擇新建的 Dialog.ui文件點(diǎn)擊運(yùn)行按鈕,運(yùn)行的就是Dialog視圖

4.在窗體中打開新窗體


class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initGUI();
#這一句比較關(guān)鍵,先聲明這個(gè)窗體2等到需要show的時(shí)候在展示出來。
        self.child = Exaple2()
def initGUI(self):
    btn = QPushButton('打開窗體', self)
        btn.setToolTip('這是個(gè)btn')
        btn.resize(btn.sizeHint())
        btn.clicked.connect(self.showSecond)
   def showSecond(self):
        self.child.show()

#第二個(gè)窗口
class Exaple2(QWidget):
    def __init__(self):
        super().__init__()
        self.configUI()
    def configUI(self):
        self.lable = QLabel('我是第二個(gè)窗體', self)
        self.lable.setWordWrap(True)  # 自動(dòng)換行
#設(shè)置frame
        self.lable.setGeometry(50, 100, 200, 50)
#設(shè)置新窗體frame
        self.setGeometry(500,500,300,300);

4.安裝QT

下載QT5.*
下載QT5
因?yàn)橄螺d的dmg直接點(diǎn)下一步下一步安裝完成
QT的官方Demo

5.新建工程

1.第一步


第一步

2.第二步


第二步

3.第三步
image.png

4.第四步 拖拽控件


image.png

5.點(diǎn)擊運(yùn)行
image.png

6.效果圖


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,294評論 0 17
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評論 25 709
  • Qt是屬于一個(gè)跨平臺的GUI開發(fā)軟件,支持的平臺有Unix、Linux、Windows/WinCE、IOS等。 Q...
    一葉之界閱讀 8,395評論 0 17
  • 之前寫過兩篇文章,介紹了使用python+paramiko用腳本的方式,自動(dòng)部署替換文件。但是腳本寫出來后,沒有得...
    邁阿密小白閱讀 2,582評論 0 2
  • 我與豆同學(xué)吃早餐,豆同學(xué)看著他面前的臉譜說,“我的情緒是開心,還有平和。媽媽,你是哪張臉?” 我掃視搜尋看自己的目...
    鄭海玲Irene閱讀 651評論 0 0

友情鏈接更多精彩內(nèi)容