首先本文不介绍如何安装Qt,只是聊聊如何实现图形界面的互动。
如下图所示,在Qt下创建图形界面程序的方法是新建一个Qt Application(Qt应用程序),接着选择第一个Qt Widgets(部件、控件等意思)程序。接着一般按照默认点,点运行Qt就自动生成一个我们平时看到的Windows图形界面了。
接着如下图所示,双击新建工程中Forms下的*.ui文件,这就是主窗口文件了。
在主窗口编辑界面右边有大量的窗口部件,可以将其拖拽到主窗口上。以博主本人的例子来说,本人用到了两个按键(Bush Button)、一个线型文本输入框(Line Edit)、一个文本标签(输出部件下的Line Edit,如下图)。
下面就是本文的精髓了:
一. 通过“转为槽”
在把按键这个动作和事件连接起来前,我们可以先最好是先设置好这个按键的对象名,而且*后面也一定不要改名*了(否则极易跟博主一样犯错--名字不对应)。
它们连接的方法是右键单击按键,在弹出的选项里选择“设到槽”、clicked(),然后确认,接着软件会把编辑界面转到主窗口编程界面。
在博主练习时按键按下引发的事件是在线型文本输入框里输出一段文字,代码如下。
void MainWindow::on_othersButton_clicked()//别人对自己的寄语
{
this->ui->lineEdit->setText("I wish you a bright future!");
}
程序运行结果
按下“其他人”按键,在上面文本输入框里输出"I wish you a bright future!"
特别声明:图形界面是在b站学的,本文核心技术是本人一姓苏同学教的。b站教学链接:https://space.bilibili.com/476086679
二. 通过添加connect()函数(利用已有信号与槽)
在完成了前面窗口部件对象的声明与定义后,利用connect()函数实现窗口部件的变化就很容易了:
//connect(发送者,发送的信号,接收者,做出的动作);
connect(mybtn,&Mybutton::clicked,this,&Widget::showMaximized);
三. 通过添加connect()函数(自建信号与槽)
首先看一下程序运行效果:
首先创建Teacher类、Student类,文件列表如下:
//在myteacher.h中加入:
signals:
void hungry();
//Mystudent.cpp中不做任何操作
//在student.h中:
public slots:
void treat();
//在其源文件中:
void Student::treat()
{
qDebug()<<"\n我们请老师吃饭。";
}
//在widget.h中:
public:
Widget(QWidget *parent = 0);
~Widget();
void classIsOver();
private:
MyTeacher *myt;
Student *st;
///在widget.cpp中:
Widget::Widget
{
myt=new MyTeacher(this);
st=new Student(this);
connect(myt,&MyTeacher::hungry,st,&Student::treat);
classIsOver();
}
void Widget::classIsOver()
{
qDebug()<<" \n老师: 我饿了\n";
emit myt->hungry();
}
//最后别忘记#include <DDebug>
祝大家学有所成、学有所乐!!!
本文系博主第一篇文章,谢谢观看!!!