在QT中更改标签的背景颜色

时间:2017-03-31 08:30:42

标签: qt background-color

我有一个主窗口和一个标签。这必须全屏显示。数据将显示在标签上。背景应为黑色,文字必须为白色。我通过串口收到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; }");
}

所以在此之后我的结果如下:

enter image description here

正如您在上图中看到的那样,由于我们没有设置主窗口的背面颜色(因为网页颜色也是白色)所以没有设置主窗口的背面颜色,因此存在主窗口的白色边框。我还希望主窗口的颜色为黑色,以便全屏为黑色,文本为白色。我也尝试在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();
}

因此它确实将主窗口的颜色更改为黑色,但结果如下所示:

enter image description here

正如您所看到的,它还会更改我不想要的文本的字体大小。我怎样才能做到这一点。?

1 个答案:

答案 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();
}

希望它有所帮助。