8:23 SSD4实验。
Qt的mainwindow构造函数中,第一句话一定要是ui->setupUi(this)才可以。
槽函数要单独写在public slots: 后,不能直接放在public的函数中。
3:10 继续写SSD4实验
设置图片自适应QLabel大小:(使用QMovie存储图片)调用movie.setScaledSize()函数确定大小。我这里直接传入label.size()的返回值。
在写这个弹出窗口的时候出现了这样的提示错误:
源码:
QDateTime current_date_time = QDateTime::currentDateTime();
QDate current_date = current_date_time.date();
QTime current_time = current_date_time.time();
int hour = current_time.hour();
int minute = current_time.minute();
int second = current_time.second();
//将改变后的时间显示在spinbox中
ui->hourSpinBox->setValue(hour);
ui->minuteSpinBox->setValue(minute);
ui->secondSpinBox->setValue(second);
int year = current_date.year();
year++;
//弹出提示框
QMessageBox* msg = new QMessageBox(this);
msg->setWindowTitle("Date_and_time");
msg->setText("Cancelled...\n=========="
"\nYear = "+QString(year)+
"\nMonth = "+QString(current_date.month())+
"\nDay = "+QString(current_date.day())+
"\nHour = "+QString(hour)+
"\nMinute = "+QString(minute)+
"\nSecond = "+QString(second)+
"\nTimezone = "+QString(currentTimeZone)+
"\nAuto Daylight = false"+
"\n=========="+
"\n(Time not saved)"
);
百度发现这个问题很少,在stackoverflow上看到一个人在使用印度语的时候出现了这个问题;后来看到有人说Qt的bug report里有这个问题:OpenType Rendering Issue。问了同学,他没有看这个实验要求。这就8太能解决了,所以我就选择不显示这个messageBox。
5:30pm 基本功能都实现了。我还有两个地方要做:时区选中之后的显示和表。
5:58 表cv了一个,但是只能显示在屏幕后面。于是我打算把屏幕放大之后展示。时区的显示我打算使用一个小箭头指向当前的地图位置。
10:04 基本都实现了。小箭头很简单,还增加了一个框用来确定当前的内容;箭头可以用于在comboBox选中内容的时候更改位置。只剩下表的位置了。我先写一下报告。
我觉得还挺好的,可以实时显示当前时间。