上次简单实现了显示窗口,下面我们在窗口中加入一些部件。

  1,我们在窗口中使用 setToolTip() 方法添加一个文本提示,在窗口中鼠标暂停几秒即可显示该文本信息。

class test():

    def setUI(self,w):
#设置工具窗口的大小
w.setGeometry(400,400,400,200)
#设置工具窗口的标题
w.setWindowTitle("Test")
#设置窗口的图标
self.setWindowIcon(QtGui.QIcon('icon.png'))
     #设置提示框中文本的字体样式,大小
     QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif',20))
     #在窗口中添加一个提示框
w.setToolTip('这是Window关机工具')
w.show() if __name__=='__main__':
#创建应用程序和对象
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
ui = test()
ui.setUI(w)
sys.exit(app.exec_())

  显示效果如下

  2,接下来我们再往里添加一个文本标签,本文标签的添加使用代码

        #添加文本标签
self.label = QtWidgets.QLabel(w)
#设置标签的左边距,上边距,宽,高
self.label.setGeometry(QtCore.QRect(60, 20, 120, 45))
#设置文本标签的字体和大小,粗细等
self.label.setFont(QtGui.QFont("Roman times",20,QtGui.QFont.Bold))
     #向标签中添加文本内容
     self.label.setText("Name:")

  

  3,接着我们添加文本输入框,并添加提交按钮获取用户输入的内容,最后将内容显示在窗口下方。完整代码如下

import os,sys
from PyQt5 import QtCore,QtWidgets,QtGui class test(): def setUI(self,w):
#设置工具窗口的大小
w.setGeometry(400,400,400,200)
#设置工具窗口的标题
w.setWindowTitle("Test")
#设置窗口的图标
w.setWindowIcon(QtGui.QIcon('icon.png'))
QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif',10))
w.setToolTip('这是Window小工具') self.label = QtWidgets.QLabel(w)
self.label.setGeometry(QtCore.QRect(60, 20, 120, 45))
self.label.setFont(QtGui.QFont("Roman times",20))
self.label.setText("Name:")
#添加设置一个文本框
self.text = QtWidgets.QLineEdit(w)
#调整文本框的位置大小
self.text.setGeometry(QtCore.QRect(150,30,160,30))
#添加提交按钮和单击事件
self.btn = QtWidgets.QPushButton(w)
#设置按钮的位置大小
#self.btn.setGeometry(QtCore.QRect(150,100,70,30))
#设置按钮的位置,x坐标,y坐标
self.btn.move(150,100)
self.btn.setText("提交")
#为按钮添加单击事件
self.btn.clicked.connect(self.getText) self.label2 = QtWidgets.QLabel(w)
self.label2.setGeometry(QtCore.QRect(60, 120, 300, 100))
self.label2.setFont(QtGui.QFont("Roman times",16,QtGui.QFont.Bold))
self.label2.setText("请输入名字") w.show() def getText(self):
name = self.text.text()
if name:
try:
self.label2.setText("你输入的名字是%s" % name)
self.text.clear()
except:
self.label2.setText("请输入名字") if __name__=='__main__':
#创建应用程序和对象
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
ui = test()
ui.setUI(w)
sys.exit(app.exec_())

  效果图如下

  

Python 使用Qt进行开发(二)的更多相关文章

  1. Qt计算器开发(二):信号槽实现数学表达式合法性检查

    表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...

  2. Python 使用Qt进行开发(三)

    下面我们实现日期时间框的添加,表示日期时间的文本框可以使用QtWidgets控件下的 QDateEdit() , QTimeEdit() , QDateTime() 三个方法实现. 1,使用QDate ...

  3. Qt计算器开发(三):执行效果及项目总结

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/guodongxiaren/article/details/26046543 执行效果 project ...

  4. Python服务器开发二:Python网络基础

    Python服务器开发二:Python网络基础   网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.包括: ...

  5. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

  6. 初识TPOT:一个基于Python的自动化机器学习开发工具

    1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...

  7. Qt官方开发环境生成的exe发布方式

    本来想自己写一个打包程序的文章了,但是我发现了宝贝,在这里,大神写的比我牛逼的多了,这里做一下搬运工 一是为了方便大家 二是为了以后方便自己找 原文链接:http://tieba.baidu.com/ ...

  8. 使用eclipse搭建第一个python+Django的web开发实例

    python+Django的web开发实例   一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的 ...

  9. 基于Flask框架的Python web程序的开发实战 <一> 环境搭建

    最近在看<Flask Web开发基于Python的Web应用开发实战>Miguel Grinberg著.安道译 这本书,一步步跟着学习Flask框架的应用,这里做一下笔记 电脑只安装一个P ...

随机推荐

  1. 【MQ】为什么选择RocketMQ?

    一.前言 提到mq,可能很多朋友都有多耳闻,很多大公司都在使用这种技术.就小编而言,听说使用mq可以进行秒杀的操作,而且使用十分的方便,效率十分的高.以前小编也做过关于秒杀的技术,就是使用悲观锁对DA ...

  2. 【转载】jquery版的网页倒计时效果

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  3. tab栏切换效果案例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 错误代码errno值的含义

    错误代码errno值的含义 查看错误代码errno是调试程序的一个重要方法.当C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义, ...

  5. 2019-11-29-Roslyn-打包自定义的文件到-NuGet-包

    title author date CreateTime categories Roslyn 打包自定义的文件到 NuGet 包 lindexi 2019-11-29 08:23:21 +0800 2 ...

  6. 383-基于kintex UltraScale XCKU040的双路QSFP+光纤PCIe 卡

    一.板卡概述 本板卡系我司自主研发,基于Xilinx UltraScale Kintex系列FPGA  XCKU040-FFVA1156-2-I架构,支持PCIE Gen3 x8模式的高速信号处理板卡 ...

  7. 五、WebSocket 链接

    一.前端代码: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml& ...

  8. Ubuntu18.04 安装redis

    Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速.用Redis可以很轻松解决高并发的数据访问问题:作为实时监控信号处理也非常不错. 安装red ...

  9. 机器学习聚类算法之K-means

    一.概念 K-means是一种典型的聚类算法,它是基于距离的,是一种无监督的机器学习算法. K-means需要提前设置聚类数量,我们称之为簇,还要为之设置初始质心. 缺点: 1.循环计算点到质心的距离 ...

  10. hdu 6501 transaction transaction transaction 最长路/树形DP/网络流

    最长路: 设置一个虚拟起点和虚拟终点,每个点与起点间一条负边,值为这个点书的价值的相反数(代表买书花钱),每个点与终点连一条正边,值为这个点的书的价格(代表卖书赚钱). 然后按照图中给的边建无向边,权 ...