找回密码
 立即注册
收起左侧

字体设置问题

5
回复
5250
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2018-10-16 09:17:32 显示全部楼层 |阅读模式
1Qter豆
软件程序中编写了用户自主设置字体功能,但是程序编辑界面的字体不能改变?请问怎么才能实现程序文本的设置功能?
原本的字体设置功能程序如下:

//设置字体
void GFrame::SetFont()
{
        bool ok;
        QFont font = QFontDialog::getFont(&ok, qApp->font(), this);
        if (ok)
                qApp->setFont(font);       
}

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-16 11:11:19 显示全部楼层
在槽函数里,先获取到mdiarea,
然后用mdiarea获取到QMdiSubWindow *tActiveSubWindow = mdiarea->activeSubWindow();
然后用 pView = dynamci_cast<>(pMdiChild->widget());得到活动视图指针,
最后用pView->setFont()
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-10-16 14:37:25 显示全部楼层
baizy77 发表于 2018-10-16 11:11
在槽函数里,先获取到mdiarea,
然后用mdiarea获取到QMdiSubWindow *tActiveSubWindow = mdiarea->activeSu ...

完全不懂事怎么回事,您可以详细解释一下吗

点评

参考代码: void GFrame::SetFont() { bool ok; QFont font = QFontDialog::getFont(&ok, qApp->font(), this); if (ok) { //qApp->setFont(font); QMdiArea* pMdiArea = dynamic_cast(centralWidget());  详情 回复 发表于 2018-10-17 08:39
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-17 08:39:23 显示全部楼层
yangyang 发表于 2018-10-16 14:37
完全不懂事怎么回事,您可以详细解释一下吗

参考代码:
void GFrame::SetFont()
{
        bool ok;
        QFont font = QFontDialog::getFont(&ok, qApp->font(), this);
        if (ok)
        {
         //qApp->setFont(font);   
                QMdiArea* pMdiArea = dynamic_cast<QMdiArea*>(centralWidget());
                if (NULL != pMdiArea)
                {
                        QMdiSubWindow *tActiveSubWindow = pMdiArea->activeSubWindow();
                        // 假设你的视图类型为 CEditView
                        CEditView* pView = dynamci_cast<CEditView*>(pMdiChild->widget());
                        if (NULL != pView)
                        {
                                pView->setFont(font);
                        }
                }
        }
}
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-10-17 09:32:29 显示全部楼层
baizy77 发表于 2018-10-17 08:39
参考代码:
void GFrame::SetFont()
{

什么是视图类型?
原来程序中是这样的:geditarea.cpp:
GEditArea::GEditArea(QWidget *parent)
:  QTabWidget(parent)
{.......}
geditarea.h:
class GEditArea : public QTabWidget
{
        Q_OBJECT
public:
......}

点评

QQ交流吧,这样效率太低。 1309547563.加好友时请注明:Qt开源社区。  详情 回复 发表于 2018-10-17 11:55
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-17 11:55:47 显示全部楼层
yangyang 发表于 2018-10-17 09:32
什么是视图类型?
原来程序中是这样的:geditarea.cpp:
GEditArea::GEditArea(QWidget *parent)

QQ交流吧,这样效率太低。 1309547563.加好友时请注明:Qt开源社区。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了