QT 设置编辑框文字字体和颜色没有效果。

零隐 2019-05-09 11:21:14
刚刚学习qt 按照范例。
设置了编辑框的颜色和字体,但是设置了没效果,请问大家是什么原因导致的。

下划线是可以的
但是斜体和设置字体颜色是不行。
代码如下


void QWDialog::on_chkBoxUnder_clicked(bool checked)
{
QFont font=ui->txtEdit->font();
font.setUnderline(checked);
ui->txtEdit->setFont(font);
}

void QWDialog::on_chkBoxItalic_clicked(bool checked)
{
QFont font=ui->txtEdit->font();
font.setItalic(checked);
ui->txtEdit->setFont(font);
}

void QWDialog::on_chkBoxBold_clicked(bool checked)
{
QFont font=ui->txtEdit->font();
font.setBold(checked);
ui->txtEdit->setFont(font);
}

void QWDialog::setTextFontColor()
{
QPalette plet=ui->txtEdit->palette();

if (ui->rBtnBlue->isChecked())
plet.setColor(QPalette::Text,Qt::blue);
else if (ui->rBtnRed->isChecked())
plet.setColor(QPalette::Text,Qt::red);
else if (ui->rBtnBlack->isChecked())
plet.setColor(QPalette::Text,Qt::black);
else
plet.setColor(QPalette::Text,Qt::black);
ui->txtEdit->setPalette(plet);
}



都可以进入上面函数,但是设置好像是失败的。
...全文
2452 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
师从名剑山 2021-03-11
  • 打赏
  • 举报
回复
我也遇到了同样的问题,也是按照范例来的,想请教一下楼主两个的区别搞清楚了吗?
阿禹 2020-10-02
  • 打赏
  • 举报
回复
引用 4 楼 Feoss 的回复:
楼主,我也 遇到了这个问题,我发现它是如果在编辑框里预先写了字符,他就不能加粗和倾斜。但是如果运行程序后在里面添加字符,再选择加粗和 倾斜就可以实现。
确实是这样,不过为什么呢?Text Edit 和 Plain Text Edit 什么区别?
阿禹 2020-10-02
  • 打赏
  • 举报
回复
引用 3 楼 荒唐大侠 的回复:
这是应该是因为你选择的text控件是Text Edit,该控件的大部分属性是通过弹出的编辑框进行设置的,如果在代码中进行设置还不清楚。不过你可以换成Plain Text Edit控件,能解决问题。
试了下Plain Text Edit,确实可以。
Amu-Feoss 2019-11-19
  • 打赏
  • 举报
回复
楼主,我也 遇到了这个问题,我发现它是如果在编辑框里预先写了字符,他就不能加粗和倾斜。但是如果运行程序后在里面添加字符,再选择加粗和 倾斜就可以实现。
荒唐大侠 2019-10-11
  • 打赏
  • 举报
回复
这是应该是因为你选择的text控件是Text Edit,该控件的大部分属性是通过弹出的编辑框进行设置的,如果在代码中进行设置还不清楚。不过你可以换成Plain Text Edit控件,能解决问题。
puthon 2019-05-10
  • 打赏
  • 举报
回复
1-setTextFontColor()不知道你是否将这个函数放到某个回到函数了,比如放到确定按钮的回调里,通过点击确定来改变颜色 2-或者可以在每一个radioButton的点击事件里面写,像下面这样:
void MainWindow::on_rBtnBlue_clicked(bool checked)
{
    QPalette plet=ui->textEdit->palette();
    plet.setColor(QPalette::Text,Qt::blue);
    ui->textEdit->setPalette(plet);
}
零隐 2019-05-10
  • 打赏
  • 举报
回复
引用 1 楼 puthon 的回复:
1-setTextFontColor()不知道你是否将这个函数放到某个回到函数了,比如放到确定按钮的回调里,通过点击确定来改变颜色
2-或者可以在每一个radioButton的点击事件里面写,像下面这样:
void MainWindow::on_rBtnBlue_clicked(bool checked)
{
QPalette plet=ui->textEdit->palette();
plet.setColor(QPalette::Text,Qt::blue);
ui->textEdit->setPalette(plet);
}

我在类初始化的时候关联了三个radio单选按钮点击触发事件。
可能跟库有关系,我昨天按了一个重新编译msvc2010的 是可以正常的,mingw32中的c++.exe 是不行的。

16,817

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧