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編輯模式的勾