Qt学习笔记1

来源:互联网 发布:淘宝店铺怎么来搞信誉 编辑:程序博客网 时间:2024/04/30 11:08

一般创建Qt项目,把Widget.ui复选项去掉,这样的好处是:直接写代码编出ui界面,界面内的组件自动对齐,并且随界面的缩放而相应缩放。

如果创建Qt类,如下写法时:

btn1=newQPushButton(this);

layout->addWidget(btn1,1,0);

不用加delete,自动析构掉;

若只是:btn1=newQPushButton(); 则后面需要自己写代码析构掉。

例:前面实现求和的例子,现在用代码实现界面和槽。

-在dialog.cpp中添加如下代码:

#include<QGridLayout>

 Dialog::Dialog(QWidget*parent)

    :QDialog(parent)

{

    btn1=newQPushButton(this);

    edit1=newQLineEdit(this);

    edit2=newQLineEdit(this);

    label1=newQLabel(this);

    label1->setText("label1");

    btn1->setText("求和");

    QGridLayout*layout=newQGridLayout(this);

    layout->addWidget(edit1,0,0);

    layout->addWidget(edit2,0,1);

    layout->addWidget(btn1,1,0);

layout->addWidget(label1,1,1);

connect(btn1,SIGNAL(clicked()),this,SLOT(add()));//btn1的点击事件和add函数关联

}

在dialog.h中添加如下代码:

private:
    QPushButton*btn1;
    QLineEdit*edit1,*edit2;
    QLabel*label1;

privateslots:

    voidadd();

 voidDialog::add()

{

    QStrings1=edit1->text();//得到edit1控件中用户输入的字符

    QStrings2=edit2->text();//得到edit2控件中用户输入的字符

    boolok=false;

    inta=s1.toInt(&ok,16);//按16进制

    if(ok==false)

       return;

    intb=s2.toInt(&ok,16);

    if(ok==false)

       return;

    label1->setText(QString::number(a+b,16));

}

 QString提供了二元的“+”操作符用于组合两个字符串,并提供了“+=”操作符用于将一个字符串添加到另一个字符串的末尾。(Qt内部维护了const char*)

 格式化字符串代码:

QStrings1=edit1->text();//得到edit1控件中用户输入的字符

QStrings2=edit2->text();//得到edit2控件中用户输入的字符

QStrings3;

s3.sprintf("%s,%s",s1.toStdString().data(),s2.toStdString().data());

label1->setText(s3);

 

注:

QString("").isNull();//为false

QString("").isEmpty();//为true


0 0
原创粉丝点击