我有一个主窗口和一个标签。这必须全屏显示。数据将显示在标签上。背景应为黑色,文字必须为白色。我通过串口收到1 or 2 or 3
之类的数据,我从文件中获取1 or 2 or 3
的相关文本。我也在调整文本以填写完整的标签。如果文本很小,那么它的字体大小需要增加,如果它很大,那么它需要是小字体。
我正在使用样式表将标签的背景颜色设置为黑色,我在调整文本的字体大小后将其放置。如下所示:
void MainWindow::SerialRead()
{
//Reading the serial data
//Reading the string from file
//Adjusting the font size to fill the label
//Changing color
ui->label->setStyleSheet("QLabel{ background-color : black; color : white; }");
}
所以在此之后我的结果如下:
正如您在上图中看到的那样,由于我们没有设置主窗口的背面颜色(因为网页颜色也是白色)所以没有设置主窗口的背面颜色,因此存在主窗口的白色边框。我还希望主窗口的颜色为黑色,以便全屏为黑色,文本为白色。我也尝试在main.c中为主窗口设置样式表,如下所示:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow app;
//Chaning color
app.setStyleSheet("QMainWindow {background-color : black;}");
app.SerialInit();
app.SerialWrite();
app.showFullScreen();
return a.exec();
}
因此它确实将主窗口的颜色更改为黑色,但结果如下所示:
正如您所看到的,它还会更改我不想要的文本的字体大小。我怎样才能做到这一点。?
答案 0 :(得分:0)
我也是qt的新手,但我建议您先按QMainWindow
设置setObjectName
的名称,然后使用样式表:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow app;
//Chaning color
app.setStyleSheet("#MainWindowName{background-color : black;}");
app.SerialInit();
app.SerialWrite();
app.showFullScreen();
return a.exec();
}
希望它有所帮助。