1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python如何设计系统界面教程_python图形化界面设计tkinter!python用户界面设计教程...

python如何设计系统界面教程_python图形化界面设计tkinter!python用户界面设计教程...

时间:2023-06-01 06:42:49

相关推荐

python如何设计系统界面教程_python图形化界面设计tkinter!python用户界面设计教程...

用python写爬虫,老师叫我加界面设计,怎么弄

写界面的话可以有两种方式,一种是GUI方式,可以使用tk或者QT之类的

还有一种就是使用WEB方式,做一个HTML的界面,可以使用简单的flask来做

python怎么使用qtdesigner设计的ui

软硬件

OS X EI Capitan

Python 3.5.1

PyQt 5.5.1

PyCharm 5.0.1

前言

在PyQt5系列教程的篇h50218157,我们已经搭建开发环境,今天,我们就用Python开发第一个Qt GUI程序,让大家感受下Qt开发的魅力,熟悉下Qt开发GUI程序的一般流程。

制作程序UI界面,一般会有2种方法,利用UI制作工具和纯代码编写,像移动开发中的Android和iOS都是这样,在PyQt5中,我们也有这么2种方式。

QtDesigner工具简介

QtDesigner是专门用来制作Qt程序UI界面的工具,它使用起来非常简单,只要通过拖拽和点击就可以完成复杂的界面设计,而且还可以随时预览查看效果图。

其中,区域1是UI界面制作导向,QtDesigner为我们提供了一些常用模块,非常方便;区域2是UI控件列表;区域3是控件属性列表;区域4是Action Editor编辑列表;区域5信号和槽的编辑列列表;区域6是资源处理窗口。

第一个PyQt5程序

说了这么多,还不如来动手实践一下。

这个是我们第一个PyQt5项目的界面效果图,需要实现的是当点击界面上的按钮时,弹出一个提示框,提示框内显示一串文字。

好了,目标定好了,马上开始去实现它。

QtDesigner设计UI

创建一个基于Main Window模块的UI文件,取名叫firstPyQt5.ui。从Widget Box中找到(也可以)Push Button,将它拖拽到工作空间里,调整位置,在Button上输入文字,调整字体及大小,这些都可以在Property Editor里操作。按钮点击弹框的操作会牵出Qt里非常重要的一对概念,即信号和槽(signal and slot),关于这个我打算再开博文细讲。现在你只需要知道slot就是一个函数,如果一个signal和一个slot绑定以后,那么signal被触发,slot就会被执行。

那么问题来了,怎么在QtDesigner里绑定signal和slot呢?打开菜单栏里的Edit—>Edit Signals/Slots,然后光标移到按钮上点击拖拽,这时会弹出一个编辑框

因为是点击,所以signal选择clicked(),slot函数现在还没有,我们就点击Edit新建一个,叫firstPyQt5_button_click()

为了演示一下资源文件的使用,这里导入两张图片,一张给主窗口,另一张给帮助菜单项里的Action。

在QtDesigner引用资源文件之前,需要先准备一个qrc文件,它跟xml文件比较类似,用来制定资源文件的路径qt.png

penguin.jpg

接下来就可以在QtDesigner的Resource Browser里倒入qrc文件,这样qrc文件中描述的资源就可以使用了

将firstPyQt5.ui转换成python代码

非常简单,通过Qt提供的命令行工具pyuic5就可以轻松实现pyuic5 -o firstPyQt5.py firstPyQt5.ui

创建PyCharm工程

新建一个新的python文件main.py,代码如下# -*- coding: utf-8 -*-

__author__ = 'djstava@'

import sys

from PyQt5.QtWidgets import QApplication , QMainWindow

from firstPyQt5 import *

if __name__ == '__main__':

'''

主函数

'''

app = QApplication(sys.argv)

mainWindow = QMainWindow()

ui = Ui_mainWindow()

ui.setupUi(mainWindow)

mainWindow.show()

sys.exit(app.exec_())

接下修改下firstPyQt5.py文件,主要是去实现slot函数,因为之前在QtDesigner里没有实现,让它弹出一个消息框def firtPyQt5_button_click(self):

QtWidgets.QMessageBox.information(self.pushButton,"标题","这是第一个PyQt5 GUI程序")

最后运行下工程

这里一般将ui文件单独存成一个文件,便于更新。

python图形化界面设计tkinter

python提供了多个开发界面的库个常用Python GUI库如下:

Tkinter:Tkinter模块("Tk 接口")Python的标准Tk GUI工具包口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。

Jython:Jython程序可以和Java无缝集成。除了一些标准模块,Jython使用Java的模块。Jython几乎拥有标准的Python中不依赖于C语言的全部模块。比如,Jython的用户界面将使用Swing,AWT或者SWT。Jython可以被动态或静态地编译成Java字节码。

Tkinter 编程

Tkinter 是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。

由于Tkinter是内置到python的安装包中、只要安装好Python之后就能import Tkinter库、而且IDLE也是用Tkinter编写而成、对于简单的图形界面Tkinter还是能应付自如。

创建一个GUI程序

1、导入Tkinter模块

2、创建控件

3、指定这个控件的master, 即这个控件属于哪一个

4、告诉GM(geometry manager)有一个控件产生了。

实例:1 #!/usr/bin/python2 # -*- coding: UTF-8 -*-3 4 import Tkinter5 top = Tkinter.Tk()6 # 进入消息循环7 top.mainloop()

实例2:1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 from Tkinter import *# 导入 Tkinter 库 5 root = Tk() # 创建窗口对象的背景色 6 # 创建两个列表 7 li = ['C','python','php','html','SQL','java'] 8 movie = ['CSS','jQuery','Bootstrap'] 9 listb = Listbox(root)# 创建两个列表组件10 listb2 = Listbox(root)11 for item in li: # 第一个小部件插入数据12 listb.insert(0,item)13 14 for item in movie: # 第二个小部件插入数据15 listb2.insert(0,item)16 17 listb.pack()# 将小部件放置到主窗口中18 listb2.pack()19 root.mainloop() # 进入消息循环

Tkinter 组件

Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。

目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:

控件

描述

Button 按钮控件;在程序中显示按钮。

Canvas 画布控件;显示图形元素如线条或文本

Checkbutton 多选框控件;用于在程序中提供多项选择框

Entry 输入控件;用于显示简单的文本内容

Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器

Label 标签控件;可以显示文本和位图

Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

Menubutton 菜单按钮控件,由于显示菜单项。

Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单

Message 消息控件;用来显示多行文本,与label比较类似

Radiobutton 单选按钮控件;显示一个单选的按钮状态

Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间

Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。.

Text 文本控件;用于显示多行文本

Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似

Spinbox 输入控件;与Entry类似,但是可以指定输入范围值

PanedWindow PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。

LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。

tkMessageBox 用于显示你应用程序的消息框。

标准属性

标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

属性 描述

Dimension 控件大小;

Color 控件颜色;

Font 控件字体;

Anchor 锚点;

Relief 控件样式;

Bitmap 位图;

Cursor 光标;

几何管理

Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置

几何方法 描述

pack() 包装;

grid() 网格

place() 位置

python中的哪个用户界面设计程序能实现这个功能

你的要求难点不在于1秒,而在于你没有多思路:

1、开线程做界面(什都好,tkinter,pyqt,甚至pygame)

2、再开一个线程计算你的业务逻辑

就tkinter而言,你可以搜索关键词:tkinter 多线程

给你随便找了个示例代码:

python-Python关于Tkinter的多线程问题——CSDN问答频道

你看看能不能给你解惑。

给你一个简陋的多线程,你感受一下:

import threading

class show(threading.Thread):

def __init__(self):

threading.Thread.__init__(self)

def run(self):

print('这里插入展示数据的代码')

class ui(threading.Thread):

def __init__(self):

threading.Thread.__init__(self)

def run(self):

print('这里插入ui代码:root.mainloop()')

if __name__=='__main__':

theui = ui()

zheshow = show()

theui.start()

zheshow.start()

我刚才试了一下,似乎tkinter必须是在主进程里面,那么代码要调整一下,把ui放到主进程代码里面:

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

from tkinter import *

import threading

import time

class show(threading.Thread):

def __init__(self):

threading.Thread.__init__(self)

self.TextA = TextA

self.TextB = TextB

self.TextC = TextC

def run(self):

LabelVar1.set('1')

time.sleep(1)

LabelVar2.set('2')

time.sleep(1)

LabelVar3.set('3')

time.sleep(1)

def PrintText():

theshow = show()

theshow.start()

if __name__=='__main__':

ListA = ["a", "b", "c", "d"]

ListB = ["A", "B", "C"]

ListC = ["1", "2", "3"]

TextA = ListA[0]

TextB = ListB[0]

TextC = ListC[0]

root = Tk()

root.title("Program")

root['background'] ='gray'

LabelVar1 = StringVar()

LabelVar1.set(TextA)

Frame1 = Frame(root)

Frame1.place(x=0, y=0, width=100, height=50)

Label1 = Label(Frame1, textvariable=LabelVar1, anchor='w')

Label1.pack(side=LEFT)

LabelVar2 = StringVar()

LabelVar2.set(TextB)

Frame2 = Frame(root)

Frame2.place(x=0, y=50, width=100, height=50)

Label2 = Label(Frame2, textvariable=LabelVar2, anchor='w')

Label2.pack(side=LEFT)

LabelVar3 = StringVar()

LabelVar3.set(TextC)

Frame3 = Frame(root)

Frame3.place(x=0, y=100, width=100, height=50)

Label3 = Label(Frame3, textvariable=LabelVar3, anchor='w')

Label3.pack(side=LEFT)

Frame_I = Frame(root)

Frame_I.place(x = 100, y = 0, width=100, height=70)

Button_I = Button(Frame_I, text = "Button" , width = 100, height=70, command = PrintText)

Button_I.place(x=0, y=0)

Button_I.grid(row=0, column=0, sticky=W, pady=4)

Button_I.pack()

root.mainloop()

python写图形界面,用什么设计

tk/tcl 有着广泛的应用,用户群体很。而且, tcl8 以后,做出来的 App 已经可以具备系生的效果了,不再是那种丑丑的界面。

这个是 python 官方承认的标准 GUI 方案(官方说 “de-facto standard“,执行上的标准,我们还没承认?),资料也比较多,自行了解吧,这里只做备忘。

版权声明:本站所有文章皆为原创,欢迎转载或转发,请保留网站地址和作者信息。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。