QT控件第二节
QT创建工程的是时候,项目名称和项目路径千万不要是中文
QAbstractButton类:按钮部件的抽象基类,提供了按钮所有共有的功能
提供的几种状态
1.按钮是否被按下
2.按钮是否被选中,只有切换按钮才能被切换为选中或不选中
3.按钮是否可以被用户按下
代码:
#include <QApplication>
#include <QAbstractButton>
#include <QPushButton>
#include <QWidget>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);//创建一个app的对象
QWidget *widget = new QWidget;
QAbstractButton *button = new QPushButton(widget);
button->setIcon(QIcon(":/log.jpg"));//设置图片
button->setIconSize(QSize(88,88));//设置图片大小
button->setText("click me");//设置文字
button->resize(160,160);
widget->resize(320,320);
widget->show();
return app.exec();//消息循环
}
图片:
信号与槽:
//定义槽函数
private slots://告诉以下方法都是槽方法
void slot_clot();//点击事件
//由某个类来发送信号,然后用某个类用槽接收
connect(button,&QAbstractButton::clicked,this,&Button_T::slot_clot);
//连接符号 发送对象 发送对象的一个事件 是在那个对象里面接收的 当前对象里面的槽方法接收
//connect(button,SIGNAL(clicked()),this,SLOT(slot_clot()));
//connect 分两大类 一个是信号发送者 一个是信号接收者
// 信号发送者名字加方法 信号接收这名字加方法
qDebug()<<button->isChecked()<<endl;
//槽函数的实现
void Button_T::slot_clot()
{
qDebug()<<"you clicked me";
qDebug()<<button->isChecked()<<endl;
}
QToolButton类用于命令或选项可以快速访问的按钮
常用的接口
void setMenu(QMenu *menu);设置菜单 就是pushubutton相似
void setPopupMode(ToolButtonPopupMode mode);设置弹出菜单的方式 默认情况下设置为延时弹出
QToolButtonStyle 设置按钮风格
Qt::ToolButtonIconOnly 只显示图片 0
Qt::ToolButtonTextOnly 只显示文本 1
Qt::ToolButtonTextBesideIcon 文本显示在图标旁边 2
Qt::ToolButtonTextUnderIcon 文本显示在图标下边 3
代码:
QToolButton *button = new QToolButton(widget);
button->setArrowType(Qt::LeftArrow);
button->setText("Left Arrow");
//文本位于图标之下
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setStyleSheet
("QToolButton{border:none;background:rgb(68,69,73);"
"color:rgb(0,160,231)}");
//导航栏
QAction *action = new QAction(widget);
action->setText(("顿开教育,欢迎大家"));
action->setIcon(QIcon(":/log"));
button->setIconSize(QSize(88,88));
action->setToolTip("我们一起奋斗学qt");
button->setDefaultAction(action);
button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
导航图片:
QLineEdit是一个文本框.(怎么把文本框的输入用原点显示或者星号)
#include <QApplication>
#include <QWidget>
#include <QLineEdit>
int main2(int argv,char* argc[])
{
QApplication app(argv,argc);//创建一个app的对象
QWidget *widget = new QWidget();
QLineEdit *edit = new QLineEdit(widget);
edit->setText("123456");
widget->show();
return app.exec();//消息循环
}
图片:
作业:
做一个简单的登录界面(类似于qq的)
今天我就讲了一下按钮 文本框 的应用