2.QLabel,QPushButton,QLineEdit,QComboBox,QCheckBox,QRadioButton,QTextEdit,QTextBrowser,QGroupBox,QSl



1.新建一个空项目(其它项目—>空QT项目):


添加新文件(选择C++Class)


MyWidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H
 
#include <QWidget>
#include <QTextEdit>
class MyWidget : public QWidget
{
    Q_OBJECT
public:
    explicit MyWidget(QWidget *parent = 0);
 
    QTextEdit* _edit;
 
signals:
 
public slots:
    void slotComboBoxIndexChanged(const QString&);
};
 
#endif // MYWIDGET_H

05Controls.pro文件的内容

HEADERS += \
    MyWidget.h
 
SOURCES += \
    MyWidget.cpp
QT += widgets gui
CONFIG += C++11

MyWidget.cpp


#include
"MyWidget.h"

#include
<QApplication>

#include
<QLabel>        
//
disply
static
text,
or
image

#include
<QPushButton>

#include
<QLineEdit>     
//
single
line

#include
<QComboBox>     
//下拉选

#include
<QCheckBox>     
//复选框

#include
<QRadioButton>  
//单选按钮

#include
<QTextEdit>     
//
multi
lines,
rich
text

#include
<QTextBrowser>  
//
readonly
textedit

#include
<QGroupBox>

#include
<QSlider>       
//
模拟方式显示数值

#include
<QSpinBox>      
//
数字

#include
<QDateEdit>

#include
<QTimeEdit>

#include
<QDateTimeEdit>

#include
<QTabWidget>    
//
不介绍,不算控件

#include
<QCompleter>

#include
<QHBoxLayout>   
//布局控件

#include
<QDebug>        
//这里用于测试用

#include
<QPixmap>

#include
<QVBoxLayout>

#include
<QLCDNumber>

MyWidget::MyWidget(QWidget
*parent)
:

QWidget(parent)

{

QVBoxLayout*
lay
=
new
QVBoxLayout(this);

QLabel*
label;

QComboBox*
combo;

QPushButton*
button;

QRadioButton*
radio;

QTextEdit*
edit;

QGroupBox*
group;

//说明可以通过编写样式的方式修改GUI中字体的样式

lay->addWidget(label
=
new
QLabel("<a
href=www.baidu.com>百度</a>"));

//通过下面一句在lable上添加一个图片,当加了下面一句之后,上面的baidu字就会被覆盖

//label->setPixmap(QPixmap("../aaa.png"));

//当选中了lable之后会,输出字符串

connect(label,
&QLabel::linkActivated,
[](QString
str){

qDebug()
<<
str;

});

lay->addWidget(button
=
new
QPushButton("Button"));

//为button添加样式

button->setStyleSheet("QPushButton
{font:bold
16px;
color:red;
padding:5px}");

lay->addWidget(radio
=
new
QRadioButton("Radio"));

radio->setStyleSheet("QRadioButton
{font:bold
16px;
color:red;
padding:5px}");

//为单选按钮添加事件,true或者false

connect(radio,
&QRadioButton::clicked,
[](bool
v){

qDebug()
<<
v;

});

lay->addWidget(new
QCheckBox("check
box"));

//添加下拉选

lay->addWidget(combo
=
new
QComboBox());

combo->addItem("Select
item1");

combo->addItem("Select
item2");

//设置下拉选可以被编辑

combo->setEditable(true);

//当下拉选selectChanged之后,用信号槽进行处理

connect(combo,
SIGNAL(currentIndexChanged(QString)),
this,
SLOT(slotComboBoxIndexChanged(QString)));

combo->setCompleter(new
QCompleter(combo->model()));

//说明多行文本框之中可以使用html标签页面

lay->addWidget(edit
=
new
QTextEdit);

edit->setText("<table
border=1><tr><th>head1</th><th>head2</th></tr>"

"<tr><td>value1</td><td>value2</td></tr>"

"<tr><td>value3</td><td>value4</td></tr>"

"</table><br>"

"<img
src=../aaa.png></img>");

_edit
=
edit;

connect(edit,
&QTextEdit::textChanged,
[&](){

//  
QTextEdit*
edit
=
(QTextEdit*)this->sender();

qDebug()
<<
_edit->toPlainText();

});

//设置竖直方向上有水平滚动条

edit->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);

//设置水平方向上没有滚动条

edit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

lay->addWidget(group
=
new
QGroupBox("Some
items"));

QHBoxLayout*
hBoxLay;

group->setLayout(hBoxLay
=
new
QHBoxLayout);

hBoxLay->addWidget(new
QPushButton("aaaa"));

hBoxLay->addWidget(new
QPushButton("aaaa"));

QSlider*
slider;

QSpinBox*
spinBox;

lay->addWidget(slider
=
new
QSlider(Qt::Horizontal));

slider->setMaximum(100);

slider->setMinimum(0);

lay->addWidget(spinBox
=
new
QSpinBox);

spinBox->setMaximum(100);

spinBox->setMinimum(0);

connect(slider,
SIGNAL(valueChanged(int)),
spinBox,
SLOT(setValue(int)));

connect(spinBox,
SIGNAL(valueChanged(int)),
slider,
SLOT(setValue(int)));

lay->addWidget(new
QDateTimeEdit);

//设置LCD样式的显示状态

QLCDNumber*
lcd;

lay->addWidget(lcd
=
new
QLCDNumber(10));

lcd->display(12345);

lcd->setMode(QLCDNumber::Hex);

lcd->setSegmentStyle(QLCDNumber::Outline);

}

void
MyWidget::slotComboBoxIndexChanged(const
QString
&str)

{

qDebug()
<<
"slotComboBoxIndexChanged"
<<
str;

}

int
main(int
argc,
char**
argv)

{

QApplication
app(argc,
argv);

MyWidget
w;

w.show();

return
app.exec();

}


运行结果:

时间: 2024-08-07 13:09:23

2.QLabel,QPushButton,QLineEdit,QComboBox,QCheckBox,QRadioButton,QTextEdit,QTextBrowser,QGroupBox,QSl的相关文章

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下-------------答题者:徐潇瑞

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下 - 当时的项目有多少用户,给用户多少价值? 现在还有人用吗? - 这个项目能否给我们团队继续开发,源代码/文档还有么? - 项目开发有什么经验和教训 - 对学好软件工程有什么建议 写成一个博客   #团队博客作业2 根据老师的作业要求,我们采访了以前本科认识的一个同学,他在读本科的时候出去实习,参与了一些项目.他参与了手机外卖app的开发,根据他的回答,当时用户有1

一个字体,大小,颜色可定义的自绘静态框控件-XColorStatic 类(比较好看,一共19篇自绘文章)

翻译来源:https://www.codeproject.com/Articles/5242/XColorStatic-a-colorizing-static-control XColor Static是一个简单的基于静态框的控件,它提供字体更改,文本和背景颜色以及图标显示. 下载演示项目 - 32.2 Kb 介绍 XColor Static是一种通用控件,允许在对话框中显示漂亮的文本.该演示向您展示了可能的文本和图标显示类型: XColorstatic API 以下是完整的方法列表:CXCol

代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)

代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到合意的,所以根据网上找的一段代码,进行了较大改动. 需引用 zepto 或 jquery. 我这个是应用于手机上的,两列瀑布流,图片高度未知——等图片的onloaded事件触发后,才对容器进行计算和定位. 大容器是 $("#imgList"),容器格子是$(".pin"

有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)

/* * 3. 有五个学生,每个学生有3门课(语文.数学.英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩), * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中. * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息 * */ import java.io.*; import java.util.*; public class Test3 { publi

欢迎各大网站 ,出版社 联系我 本人的理想就是在有生之年出版一本IT 方面的书,请大家多多帮忙。感 谢。

欢迎各大网站 ,出版社 联系我 本人从IT工作多年,可以业余或周末时间从事IT方面的文章,图书出版,简单IT技术的图书翻译等. 本人的理想就是在有生之年出版一本IT 方面的书,请大家多多帮忙.感 谢. 本人以后会坚持写博客,每天一篇.  

善于相人却遭择婿铁律,屡屡把女儿推入火坑(其父必有其子是不对的,唐太宗都教子无方,更何况别人?)

张宏杰  国家人文历史 也许是上天注定,曾国藩家的女人们大都命运多舛.和自己的姐妹们一样,曾国藩的头四个女儿,婚姻生活都不顺遂,只有最小的女儿是一个例外. 吊诡的是,头四个女儿的夫家,都是曾国藩千挑万选亲自择定的. 曾国藩的女婿,有几个共同特点:都是曾国藩的湖南好友或同事的孩子:这些孩子他都亲自见过,可谓知根知底:这些女婿的父亲都品行高尚,才气不凡. 按道理,这样选出来的女婿,肯定差不到哪里去.但是世事就是如此奇怪,曾国藩的设想居然一一落空. 曾国藩的长女曾纪静,嫁的是曾国藩翰林院同事.好友袁芳

Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1

Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数.给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数. 输入描述: 输入为一个正整数N(1 ≤ N

在网上找来的几个大牛,忽然觉得自己来参加ACM倒也不是一件错误的事情,梦想总是要有的,万一成了呢。

wywcgs: 亦称Lord Wu,俗名吴垠,2009级厦门大学智能科学与技术学院研究生,本科就读于哈尔滨工业大学.因其深厚的算法功底与独到的思维方式,被尊为"吴教主",至今声威犹存. 2006年起参加ACM/ICPC竞赛,获得分别获得上海.西安.长春三枚区域赛银牌. 2008年获得GCJ-BeiJing Onsite参赛资格,并在比赛中表现优异,获得Final资格,后因个人原因,推掉了总决赛资格,并忙于为各赛区出题. 2010年复出比赛,在福建省举办的全国邀请赛中力压群牛,获得赛区金

输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。

#include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序.提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个字符串数组就是一个二维字符数组.*/ void main(){ char stuNames[5][100]; char tmp[100]; int i = 0,j = 0; for(i = 0; i < 5; i++) { printf("请输入第%d个学生的名字:"