小编son*_*van的帖子

如何替换字符串中的 QRegExp?

我有一个字符串。例如:

QString myString = "Today is Tuesday";
Run Code Online (Sandbox Code Playgroud)

要求是:当用户键入一个字符串时,如果该字符串包含在 中myString,则该部分myString应为粗体,不区分大小写(Qt::CaseInsensitive),但myString应保留的格式(大写字符应为大写和小写字符)应该是小写)。

例如:

  • 用户类型:tu- >今天是esday
  • 用户类型:ES- >今天是屠ES
  • 用户类型:aY- >托德AY就是Tuesd AY

这是我的功能:

void myClass::setBoldForMatching( const QString &p_text )
{
  QRegExp regExp( p_text, Qt::CaseInsensitive, QRegExp::RegExp );
  if ( !p_text.isEmpty() )
  {       
    if ( myString.contains( regExp ) )
    {
      myString = myString.replace( p_text, QString( "<b>" + p_text + "</b>" ), Qt::CaseInsensitive );
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个函数是错误的,因为 …

c++ qstring qt qregexp

4
推荐指数
1
解决办法
1401
查看次数

为 QTreeWidget 中的元素设置样式表和字体大小

我尝试为树小部件的标题和内容设置新的字体大小。

这里的问题是:我无法直接为内容设置字体大小,因为在我设置的那一刻,内容还没有出现。所以我可以只设置StyleSheet,这样当内容出现时,它就会遵循StyleSheet。这是我的代码:

    int modifier = 2;
    /* Set font size for headers */
    QFont f = ui.treeWidget->headerItem()->font(0);
    if (f.pointSize() == 10)
        f.setPointSize(f.pointSize() - 1);
    else
        f.setPointSize(f.pointSize() - modifier);
    ui.treeWidget->headerItem()->setFont(0, f);
    ui.treeWidget->headerItem()->setFont(1, f);
    ui.treeWidget->headerItem()->setFont(2, f);

    /* Set font size for content */
    ui.treeWidget->setStyleSheet("{font-size: " + QString::number(f.pointSize()) + "}");
Run Code Online (Sandbox Code Playgroud)

这是结果,标题字体大小改变了,但内容没有改变。我哪里错了,或者您还有其他解决方案吗? 在此输入图像描述

qt stylesheet qtreewidget qtreewidgetitem

1
推荐指数
1
解决办法
7000
查看次数

如何使LineEdit中的按钮尺寸变小?

我在LineEdit中制作了X按钮,当我点击这个按钮时,LineEdit就清晰了。但用我的方法,X按钮看起来有点大,不美观,我需要把它变小。我怎样才能做到呢?

在此输入图像描述

myLineEdit = new LineEdit;
myLineEdit->setFixedHeight( 25 );
m_clear = m_lineEdit->addAction( QIcon( ":/clearButton" ), QLineEdit::TrailingPosition );
Run Code Online (Sandbox Code Playgroud)

clearButton.png 的大小是 12x12 px,所以在本例中它被放大了,看起来不太漂亮。

qt qlineedit qicon qaction qtoolbutton

1
推荐指数
1
解决办法
1014
查看次数