我正在使用 Qt 5.2,我想让 QLineEdit
不可编辑。问题在于,它看起来不像。使用 setReadOnly(true)
时,它保持白色背景,看起来仍然可以编辑。
如果我禁用它,它会变成灰色,文本也会变成浅灰色。问题是,无法从中复制文本,处于禁用状态。
那么我怎样才能使 QLineEdit
正确地不可编辑,并使它看起来像它。在 Windows 中,这样的控件通常是灰色的,但文本保持黑色。当然我可以手动设置样式,但这意味着它是硬编码的,在其他平台上可能看起来不对。
最佳答案
将行编辑设为只读后,您可以将背景和文本颜色设置为您喜欢的任何颜色:
ui->lineEdit->setReadOnly(true);
QPalette *palette = new QPalette();
palette->setColor(QPalette::Base,Qt::gray);
palette->setColor(QPalette::Text,Qt::darkGray);
ui->lineEdit->setPalette(*palette);
关于c++ - 如何使 QLineEdit 在 Windows 中不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915700/