QPushButton,QToolButton的区别
QToolButton 类提供了一个快速访问按钮的命令或选项, 通常在 qtoolbar 中使用。有个关联action,还可以设置快捷键; QToolButton是一个特殊的Button, 提供快速访问特定的命令或选项。与普通命令按钮不同, QToolButton通常不显示文本标签, 而是显示图标。 QPushButton是常用按钮,一般可以提供文字,图标都在按钮上。可以设置一定的界面风格等。
QPushButton简单使用及窗口简单设置
创建按钮控件: QPushButton() 创建一个无父控件的按钮控件 QPushButton(parent) 创建控件的同时, 设置父控件 QPushButton(text, parent) 创建控件的同时, 设置提示文本和父控件 QPushButton(icon, text, parent) 创建控件的同时, 设置图标, 提示文本和父控件
QtGuiApplication2.cpp
代码语言:javascript复制#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>
代码语言:javascript复制 QLabel *label1 = new QLabel("test123", this);
//label1->move(100,100);
label1->setGeometry(50, 70, 160, 30);
在main.cpp 可以这样
代码语言:javascript复制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 &)是互斥的,即两个同时设置时,只有一个生效(最后设置的那个生效)。 示例代码及现象如下:
代码语言:javascript复制 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显示图片了。
代码语言:javascript复制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
代码语言:javascript复制checkBox
ui.checkBox->setChecked(true);
ui.lineEdit->setText("123456");
if (ui.checkBox->isChecked())
{
ui.lineEdit->setEchoMode(QLineEdit::Password);
}
else
{
ui.lineEdit->setEchoMode(QLineEdit::Normal);
}