根据我对QDateEdit API文档的理解,它创建了一个用于编辑日期的小部件。它仅有的公共成员是构造函数。因此,我基本上使用QT创建器创建了QT小部件应用程序,并添加了以下代码。
QTextStream cout(stdout);
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDate d1(2002,4,1)
QDateEdit dateEdit(d1,0);
return EXIT_SUCCESS;
}
即使没有给出错误,也不会出现任何小部件/窗口。我没有得到什么?
答案 0 :(得分:1)
调用show方法
where schcd = 123
这是必需的,因为QDateEdit是一个小部件,默认情况下不会显示...
只需:
dateEdit.show();
对您的评论,还有其他问题;
为什么像QString = InputDialog :: getText(....)这样的行不需要.show()
好吧,getText函数在内部进行调用:
文档: https://doc.qt.io/archives/qt-4.8/qdialog.html#exec
int QDialog :: exec()
将对话框显示为模式对话框,直到用户将其关闭为止,该对话框一直处于阻塞状态。 该函数返回DialogCode结果。
如果对话框是应用程序模式,则用户无法与任何 直到它们关闭对话框,然后再打开同一应用程序中的其他窗口。如果 该对话框是窗口模式的,只有与父窗口的交互是 对话框打开时被阻止。默认情况下,对话框为 应用程序模式。
另请参阅open(),show(),result()和setWindowModality()。
源代码:
QDateEdit dateEdit(d1,0);
dateEdit.show();
答案 1 :(得分:0)
尝试一下:
#include <QApplication>
#include <QDate>
#include <QDateEdit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDate d1(2002,4,1);
QDateEdit dateEdit(d1,0);
dateEdit.show(); // Call show()
return a.exec(); // Run events loop
}
答案 2 :(得分:0)
您正在创建窗口小部件,但是没有调用适当的方法来显示它。在Qt中,有一个专用的方法QWidget::show()
。根据文档,此方法:
显示小部件及其子小部件。
或者,您可以调用showFullScreen
,showMaximized
或setVisible(true)
。
所以,尝试:
QDate d1(2002,4,1);
QDateEdit dateEdit(d1,0);
dateEdit.show();