我有一个字符串。例如:
QString myString = "Today is Tuesday";
Run Code Online (Sandbox Code Playgroud)
要求是:当用户键入一个字符串时,如果该字符串包含在 中myString,则该部分myString应为粗体,不区分大小写(Qt::CaseInsensitive),但myString应保留的格式(大写字符应为大写和小写字符)应该是小写)。
例如:
tu- >今天是屠esdayES- >今天是屠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)
这个函数是错误的,因为 …
我尝试为树小部件的标题和内容设置新的字体大小。
这里的问题是:我无法直接为内容设置字体大小,因为在我设置的那一刻,内容还没有出现。所以我可以只设置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)
我在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 ×3
c++ ×1
qaction ×1
qicon ×1
qlineedit ×1
qregexp ×1
qstring ×1
qtoolbutton ×1
qtreewidget ×1
stylesheet ×1