setTypeface(null,Typeface.BOLD_ITALIC)不起作用

时间:2016-01-14 18:31:09

标签: java android

我的第一个问题!

我正在构建两个非常常见的按钮:一个用于将文本设置为ITALIC,另一个用于将文本设置为BOLD。当两者都被按下时,文本必须是BOLD_ITALIC。

斜体按钮效果很好,但是当文字是ITALIC时,BOLD按钮不起作用,我真的不知道为什么。

void WebView::copyLinkText(QString& text)
{
    QClipboard* clip = QApplication::clipboard();
    clip->setText(text);
}

void WebView::contextMenuEvent(QContextMenuEvent *event)
{
    QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos());
    if (!r.linkUrl().isEmpty()) {
        QMenu menu(this);
        menu.addAction(pageAction(QWebPage::OpenLinkInNewWindow));
        menu.addAction(tr("Open in New Tab"), this, SLOT(openLinkInNewTab()));
        menu.addSeparator();
        menu.addAction(pageAction(QWebPage::DownloadLinkToDisk));
        // Add link to bookmarks...
        menu.addSeparator();
        menu.addAction(pageAction(QWebPage::CopyLinkToClipboard));
        QString linkText = r.linkText();
        QAction* action = menu.addAction(tr("Copy Link Text"), this, SLOT(copyLinkText()));
        if (page()->settings()->testAttribute(QWebSettings::DeveloperExtrasEnabled))
            menu.addAction(pageAction(QWebPage::InspectElement));
        menu.exec(mapToGlobal(event->pos()));
        return;
    }
    QWebView::contextMenuEvent(event);
}

2 个答案:

答案 0 :(得分:0)

来自文档:

  

public void setTypeface(Typeface tf)

     

设置应显示文本的字体和样式。请注意,并非所有Typeface系列实际上都有粗体和斜体变体,因此您可能需要使用setTypeface(Typeface,int)来获得您真正想要的外观。

  

public void setTypeface(Typeface tf,int style)   在API级别1中添加

     

设置应显示文本的字体和样式,如果您提供的字体没有指定样式中的所有位,则打开Paint中的伪粗体和斜体位。

答案 1 :(得分:0)

您在第二个else之前忘了if