我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

python学习第9天_刘国平_2021.01.27

[复制链接]
果丹卷学员认证 发表于 2021-1-27 21:24:58 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、工作内容:
9:00-20:00
1.输入框
from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QLineEdit,QTextEdit,QGridLayout
import sys

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        grid = QGridLayout()
        self.setLayout(grid)

        title = QLabel('标题:')
        title_edit = QLineEdit()

        grid.addWidget(title,1,1)
        grid.addWidget(title_edit,1,2)

        author = QLabel('作者:')
        author_edit = QLineEdit()

        grid.addWidget(author,2,1)
        grid.addWidget(author_edit,2,2)

        text = QLabel('正文:')
        text_edit = QTextEdit()

        grid.addWidget(text,3,1)
        grid.addWidget(text_edit,3,2)

        self.setGeometry(300,300,300,200)    #窗口内容少可以设置一下,内容多就自适应
        self.setWindowTitle('文本编辑器')
        self.show()

if __name__ =='__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

2.计算器
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QGridLayout,QLineEdit
from PyQt5.QtCore import Qt
from PyQt5.QtCore import QCoreApplication
import sys

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        #创建一个表格布局
        grid = QGridLayout()
        self.setLayout(grid)
        #创建计算器的显示器
        self.screen = QLineEdit()    #self.screen 成员变量
        #设置显示器为只读模式(只允许从计算器按钮输入)
        self.screen.setReadOnly(True)
        #设置显示器内容右对齐
        self.screen.setAlignment(Qt.AlignRight)

        grid.addWidget(self.screen,0,1,1,4)       # 方法重载,1,4为行、列扩展,表示所占行、列数

        #创建所有按钮标签

        labels = ['<——','CE','C','Close',
                     '7','8','9','/',
                     '4','5','6','*',
                     '1','2','3','-',
                     '0','.','=','+']
        #创建按钮的位置参数
        positions = [(x,y) for x in range(1,6) for y in range(1,5)]
        #print(positions)
        #创建按钮并添加到表格中
        for label,position in zip(labels,positions):
            btn= QPushButton(label)
            btn.clicked.connect(self.function)
            grid.addWidget(btn,*position)
            #grid.addWidget(label,position[0],position[1])



        # backspace = QPushButton('<——')
        # grid.addWidget(backspace,1,1)
        # ce = QPushButton('CE')
        # grid.addWidget(ce,1,2)


        self.move(500,500)
        self.setWindowTitle('计算器')
        self.show()
    def function(self):
        #获取对应按键的内容
        text=self.sender().text()
        #判断被按下的按钮,然后执行相应的操作
        if text == '<——':
            self.backspace()
        elif text == 'C' or text == 'CE':
            self.clear()
        elif text =='Close':
            self.Close()
        elif text == '=':
            self.calculate()
        else:
            self.write(text)

        #print(text)

    def backspace(self):
        #获取文本框的内容
        a=self.screen.text()
        #向文本框写入内容
        self.screen.setText(a[:-1])

    def clear(self):
        self.screen.setText('')

    def Close(self):
        QCoreApplication.instance().quit()

    def calculate(self):
        a=self.screen.text()
        #b=eval(a)      #可以对字符串进行数学运算
        self.screen.setText(str(eval(a)))
    def write(self,text):
        #向文本框写入内容
        self.screen.setText(self.screen.text()+text)

if __name__ =='__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

3.状态栏
from PyQt5.QtWidgets import QApplication,QMainWindow
import sys,time
class Example(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        #创建状态栏
        status = self.statusBar()
        #在状态栏显示信息
        status.showMessage('准备好了')
        time.sleep(10)
        #status.showMessage('可以开始了')

        self.setGeometry(300,300,300,200)
        self.setWindowTitle('状态栏')
        self.show()
if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

4.菜单栏
from PyQt5.QtWidgets import QApplication,QMainWindow,qApp,QAction
from PyQt5.QtGui import QIcon
import sys
class Example(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        #创建一个菜单条目
        exitAction=QAction(QIcon(r'python\day9计算器输入框\exit3.png'),'退出',self)
        confirmAction=QAction(QIcon(r'python\day9计算器输入框\exit3.png'),'保存',self)

        #添加快捷键
        exitAction.setShortcut('ctrl+Q')
        #添加一个提示
        exitAction.setStatusTip('退出程序!')
        #给菜单条目添加动作
        exitAction.triggered.connect(qApp.quit)

        #创建一个菜单栏
        menuBar = self.menuBar()
        #添加一个File菜单
        fileMenu = menuBar.addMenu('File')
        editMenu = menuBar.addMenu('Edit')
        #添加菜单条目
        fileMenu.addAction(exitAction)
        editMenu.addAction(confirmAction)


        self.setGeometry(300,300,300,200)
        self.setWindowTitle('程序菜单')
        self.show()
if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

5.工具栏
from PyQt5.QtWidgets import QApplication,QMainWindow,qApp,QAction
from PyQt5.QtGui import QIcon
import sys
class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        exitAction = QAction(QIcon(r'python\day9计算器输入框\exit.png'),'退出',self)
        exitAction.setShortcut('ctrl+Q')
        exitAction.triggered.connect(qApp.quit)

        #创建工具栏
        toolBar = self.addToolBar('工具栏')
        toolBar.addAction(exitAction)

        self.setGeometry(300,300,300,200)
        self.setWindowTitle('工具栏')
        self.show()
if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

21:00-23:00
完成将菜单栏、工具栏、状态栏在同一界面实现作业
二、遇到的问题
将菜单栏、工具栏、状态栏在同一界面实现
三、解决办法
from PyQt5.QtWidgets import QApplication,QMainWindow,qApp,QAction,QVBoxLayout
from PyQt5.QtGui import QIcon
import sys
class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):

        '''菜单栏'''
        #创建一个菜单条目
        fileAction=QAction(QIcon(r'python\day9计算器输入框\exit3.png'),'New File',self)

        #添加快捷键
        fileAction.setShortcut('ctrl+s')
        #添加一个提示
        #saveAction.setStatusTip('退出程序!')
        #给菜单条目添加动作
        fileAction.triggered.connect(qApp.sender)
        #创建一个菜单栏
        menuBar = self.menuBar()
        #添加一个File菜单
        fileMenu = menuBar.addMenu('File')
        editMenu = menuBar.addMenu('Edit')
        selectionMenu = menuBar.addMenu('Selection')
        viewMenu = menuBar.addMenu('View')
        #添加菜单条目
        fileMenu.addAction(fileAction)
        editMenu.addAction(fileAction)
        selectionMenu.addAction(fileAction)
        viewMenu.addAction(fileAction)


        '''工具栏'''
        confirmAction=QAction(QIcon(r'python\day9计算器输入框\exit.png'),'保存',self)
        toolBar = self.addToolBar('')
        toolBar.addAction(fileAction)
        toolBar.addAction(confirmAction)


        '''状态栏'''

        #创建状态栏
        status = self.statusBar()
        #在状态栏显示信息
        status.showMessage('准备好了',)

        self.setGeometry(300,300,300,200)
        self.setWindowTitle('vscode')
        self.show()
if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

回复

使用道具 举报

关注0

粉丝0

帖子15

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备2025058934号-2 )

版权所有 © 西安菁英教育科技有限公司 2023-2026