ui->setupUi(a);就是将设计的ui窗口应用到新建的a窗口对象上。
return a.exec();表示只要主窗口界面不退出,那么程序就会一直执行下去,所以一般要show,然后关闭窗口这样程序就会停止执行,如果没有show,程序无法结束,就会一直执行下去
namespace Ui{
class light;
}
声明namespace Ui是因为要调用Ui中的light,这个light是继承自
amespace Ui {
class light: public Ui_light {};};而不是后面构造函数中的new 的light,后面涉及的*ui指针会调用它!
前面非Ui域中的刚刚new的light的*ui指向的是Ui域中的light,而Ui域中的light就是继承了Ui_light{},内容是空的。
light::light(QWidget *parent) : QWidget(parent),ui(new Ui::light)
{
ui->setupUi(this);}
light的构造函数,继承至QWidget,然后在堆上new了一个ui类型是Ui::light等价于Ui::light *ui = new Ui::light;以上是看了其他人的文章之后个人的理解,不知道对不对,记下来,有助于以后的回顾。udp通信中,与固定主机通信的设置QHostAddress ip;ip.setAddress("59.79.80.133");sender->writeDatagram(datagram.data(),datagram.size(),ip,45454);Qlist<T> 中,类型T可以是int,double,指针类型,具有默认构造函数的类(没有参数的构造函数),复制构造函数或者赋值操作符相似的类。符合这个条件的类包括:QByteArray,QDateTime,QRegExp,QString和QVariant。派生自QObject的Qt类不具备资格,因为它们没有复制构造函数和赋值操作符。不过在实际应用中可以简单的存储执行QObject类的指针而不是对象本身。在Qt程序中有时候遇到突然不能编辑的问题的解决办法:编辑->高级->取消最后一个使用vi编辑模式的勾