基础部分

修改某个控件显示的文字(优先级比属性高)

1
2
3
ui->pushButton->setText(tr("新的"));
//在软件中应避免直接出现中文字符串,应该使用tr()函数包含
//这段代码如果用于控件的初始化,应当写在构造函数中

弹出警告对话框

需要使用头文件QMessageBox

1
2
3
QMessageBox::warning(this, tr("警告!"),
tr("用户名或密码错误!"),
QMessageBox::Yes);

  从上面的例子我们可以看出这个函数的参数分别为:父窗口、对话框标题、对话框的显示内容、对话框中的按钮。也就是说,上面这段代码实现的是弹出一个提示密码输入错误的,带有一个Yes按钮的警告对话框。

   注:需要使用头文件 #include

登陆窗口的创建步骤

  1. 在项目视图中,右键->添加文件->QT->QT设计师界面类
  2. 在创建好的登陆窗口中新建一个按钮,切换成“控件和槽编辑模式”,拖动按钮,放开鼠标后,会弹出配置连接对话框。将pushButton的clicked()信号和LoginDlg的accept()槽关联起来。其中,accept()槽的功能是:将对话框关闭并返回QDialog::Accepted标识。
  3. 修改main函数:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include "mainwindow.h"
    #include <QApplication>
    #include "logindlg.h" // 增加登陆窗口的头文件
    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    MainWindow w;
    LoginDlg dlg; // 声明
    if(dlg.exec() == QDialog::Accepted) // 利用Accepted返回值判断按钮是否被按下
    {
    w.show(); // 如果被按下,显示主窗口
    return a.exec(); // 程序一直执行,直到主窗口关闭
    }
    else return 0; // 如果没有被按下,则不会进入主窗口,整个程序结束运行
    }

  在上面的代码中,我们首先创建了LoginDlg类的对象dlg,然后让dlg运行,即执行exec()函数,然后判断它的返回值。如果用户按下了按钮,那么返回值应该是Accepted,这个时候就会显示主窗口,并正常执行程序;否则,结束程序。

  另外,在平时写程序的时候,我们需要控制Accepted返回值,可以使用accept()函数。以点击登陆按钮直接进入为例:

1
2
3
4
void LoginDialog::on_loginBtn_clicked()
{
accept();
}

密码输入框

  首先,新建一个文本条。然后在这个文本条所在的窗口的构造函数中将它的EchoMode属性更改为密码条就行了。例子如下:

1
ui->pswEdit->setEchoMode(QLineEdit::Password);

去除输入中的空格

  使用函数trimmed()

清除文本条、光标定位

1
2
ui->usrLineEdit->clear();
ui->usrLineEdit->setFocus();

创建新窗口之后、原窗口不消失的窗口

  1. 对一个按钮右键->”转到槽”;
  2. 选择“clicked()”信号,确定,然后自动转到当前窗口代码编辑模式中的on_pushButton_clicked()函数处;
  3. 补充函数体:(需要添加头文件#include
    1
    2
    3
    4
    5
    void MainWindow::on_pushButton_clicked()
    {
    QDialog *dlg = new QDialog(this);
    dlg->show();
    }

  在上面的代码中实现了创建一个对话框对象,然后让它显示出来,创建时指定的this参数表明这个对话框的父窗口是MainWindow。

  这种方法,会让我们每按一次按钮,都会生成一个新的对话框。但是在这个过程中,不会造成内存泄漏或者是内存耗尽,这得益于QT的对象机制,保证了不会造成内存泄漏,而且不需要使用delete语句。

  在日常使用的过程中,我们可以在mainwindow.h文件中先定义一个对话框对象,并在构造函数中进行创建,再在这里使用。

创建一个退出按钮

  1. 单击设计模式下方的信号和槽编辑器(Signals & Slots Editor)中的绿色加法号添加关联;
  2. 发送者为按钮,信号为clicked(),接受者为当前窗口,操为close()

QT Creator常用命令

Ctrl+滚轮:控制字体大小

Ctrl+1~6:切换左侧边栏,如常用的Ctrl+2(编辑)、Ctrl+3(设计)

Ctrl+R:编译

F3:控件编辑模式

F4:信号和槽编辑模式

参考文档

API和文档

QT开源社区 教程目录