专栏首页CSharp编程大全QPushButton && QLabel

QPushButton && QLabel

QPushButton,QToolButton的区别

QToolButton 类提供了一个快速访问按钮的命令或选项, 通常在 qtoolbar 中使用。有个关联action,还可以设置快捷键; QToolButton是一个特殊的Button, 提供快速访问特定的命令或选项。与普通命令按钮不同, QToolButton通常不显示文本标签, 而是显示图标。 QPushButton是常用按钮,一般可以提供文字,图标都在按钮上。可以设置一定的界面风格等。

QPushButton简单使用及窗口简单设置

创建按钮控件: QPushButton() 创建一个无父控件的按钮控件 QPushButton(parent) 创建控件的同时, 设置父控件 QPushButton(text, parent) 创建控件的同时, 设置提示文本和父控件 QPushButton(icon, text, parent) 创建控件的同时, 设置图标, 提示文本和父控件

QtGuiApplication2.cpp

#include "QtGuiApplication2.h"
#include <qpushbutton.h>

//加上这三句可解决中文乱码,但是不可以和QString::fromLocal8Bit或QStringLiteral同时使用
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif

QtGuiApplication2::QtGuiApplication2(QWidget *parent)
  : QMainWindow(parent)
{
  ui.setupUi(this);
  //按钮
  QPushButton *pb = new QPushButton;
  // //pb->show();   //用顶层方式弹出   如果想在MyWidget窗口
        //中显示,就需要依赖MyWidget窗口
    //设置在基类中显示
  pb->setParent(this);
  pb->move(100, 150);
  pb->resize(100, 50);
  //设置文本
  pb->setText("hello");  //将char *隐式类型转为QString
  //创建按钮的第二种方式
  QPushButton *btn2 = new QPushButton("second", this);
  //窗口会按照btn2大小进行显示

  //重置窗口大小
  this->resize(300, 300);

  //移动第二个按钮
  btn2->move(100, 100);
  //按钮重置大小
  btn2->resize(50, 50);
  //重置窗口标题
  this->setWindowTitle("主窗口");
  //设置固定窗口大小
  //this->setFixedSize(600,600);

}

运行结果:

label:

在QtGuiApplication2.cpp

#include <qlabel.h>

  QLabel *label1 = new QLabel("test123", this);
  //label1->move(100,100);
  label1->setGeometry(50, 70, 160, 30);

在main.cpp 可以这样

QLabel label1("test123", &w);
label1.setGeometry(50, 70, 160, 30);

QT QLabelde 使用技巧总结:

https://www.cnblogs.com/wanghuixi/p/9521717.html

QLabel是Qt自带的一个显示用控件,可以用来显示图片和文本。其使用也非常方便:用setPixmap(const QPixmap &)接口来设置要显示的图片,用setText(const QString &)接口来设置要显示的文本。然而在使用过程中,我发现QLabel的setPixmap(const QPixmap &)和setText(const QString &)是互斥的,即两个同时设置时,只有一个生效(最后设置的那个生效)。 示例代码及现象如下:

  QLabel *m_pLblPixmap = new QLabel("This is pixmap",this);
  m_pLblPixmap->resize(50, 50);
  m_pLblPixmap->move(0, 0);
  m_pLblPixmap->setAlignment(Qt::AlignCenter);
  m_pLblPixmap->setScaledContents(true);
  //我这边两个接口都调用,但是最后调用的setPixmap覆盖了setText
  m_pLblPixmap->setPixmap(QPixmap("icon32/timg.jpg")); 
  //相当于 QPixmap pixmap(":/icon32/stop.png"); m_pLblPixmap->setPixmap(pixmap);

我的环境是vs2017 + q5.13

"icon32/timg.jpg"

这个路径写成

1. ":/icon32/timg.jpg" 或"/icon32/timg.jpg"都不能 正常显示图片

或者也可以用绝对路径

2. 其次

要被显示的图片路径含有中文,用户没有对中文进行转换的话也不能正常显示

3. 引入了paintEvent函数,引入该函数我们就没法再通过setPixmap函数显示图片了,我们只能通过QPainter显示图片了。

QPixmap(const QString &filename, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor);

其各个参数的含义解释如下。

1) filename:文件名。 2) format:字符串,表示图像文件的格式,如果为 0,将进行自动识别。 3) flags:表示颜色的转换模式。

如果图像文件加载失败则产生空图像,这里 flags 参数有以下取值。 1) Qt::AutoColor:由系统自动决定。 2) Qt::ColorOnly:彩色模式。 3) Qt::MonoOnly:单色模式。

详见

https://blog.csdn.net/u014552102/article/details/89608279

checkBox 
ui.checkBox->setChecked(true);
ui.lineEdit->setText("123456");
if (ui.checkBox->isChecked())
 {
  ui.lineEdit->setEchoMode(QLineEdit::Password);
 }
 else
 {
  ui.lineEdit->setEchoMode(QLineEdit::Normal);
 }

本文分享自微信公众号 - CSharp编程大全(y438679770),作者:zls365

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C# 获取txt文件邮箱号码并去重复

    zls365
  • C# 线程安全及线程同步技术

    线程安全:就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一...

    zls365
  • [WPF] WPF做的漂亮的登陆界面[附源码]

    登陆界面上的logo都是从网上找的,请大家替换成自己公司的logo即可。。。。。 WPF界面库,非常漂亮的WPF界面【附源码】 https://www.it...

    zls365
  • 阿里收购优酷土豆 “掘金”大数据

    日前阿里巴巴集团宣布,阿里巴巴集团已向优酷土豆公司董事会发出非约束性要约,拟以每ADS(美国存托凭证)26.60美元的价格,现金收购除阿里巴巴集团已持有优酷土...

    灯塔大数据
  • Black Hat Europe 2017:安全专家发现5款最流行编程语言中的漏洞

    没有不漏的锅,如果底层的编程语言如果出现问题,顶层的应用程序还能幸免于难吗? 这周在 Black Hat Europe 2017 安全会议上,一名安全研究员公开...

    FB客服
  • 大数据那些事(7):腾飞的拉丁猪

    2007到2008年的Hadoop世界,是Hadoop发展历史上非常关键的一年。这一年Yahoo Research 发表了Pig Latin的paper 在 S...

    用户1564362
  • 大数据那些事(7):腾飞的拉丁猪

    2007到2008年的Hadoop世界,是Hadoop发展历史上非常关键的一年。这一年Yahoo Research 发表了Pig Latin的paper 在 S...

    用户1564362
  • 【一周简报】智齿客服:成功搭建PP租车在线客服体系,全面支撑业务增量

    编辑导语 酷传&友盟合作版客户端上线,小白也可轻松集成SDK;听云应用性能管理(APM)助爱卡汽车玩转日均PV1.5亿社区用户体验;智齿客服:成功搭建PP租车在...

    BestSDK
  • 如何用Nginx快速搭建一个安全的微服务架构

    美的让人心动
  • 如何用Nginx搭建一个安全的、快速的微服务架构

    今天我们要谈论微服务以及如何使用Nginx构建一个快速的、安全的网络系统。最后,将向您展示一个使用Fabric模式如何非常快速和轻松地构建一个微服务的demo。

    技术zhai

扫码关注云+社区

领取腾讯云代金券