qss设置border-radius
时间: 2023-10-31 15:05:54 浏览: 263
在Qt中使用QSS设置QPushButton的border-radius属性时,可以通过以下几种方式来实现。
第一种方式是在样式表中直接设置border-radius属性的值为15px,如下所示:
self.Btn1.setStyleSheet("QPushButton{border-radius:15px;}")
第二种方式是使用border-image属性来设置背景图片,并且通过border-radius属性来设置边框的圆角效果,如下所示:
self.Btn2.setStyleSheet("QPushButton{border-image:url('../LikeMountain/img/lite-btn1.png'); border-radius:15px;}")
两种方式都可以实现QPushButton的border-radius效果,根据你的需要选择合适的方式进行设置。
相关问题
QT怎么使用qss的border-radius属性
要在QT中使用qss的border-radius属性,你需要按照以下步骤操作:
1. 首先,在你的QT项目中创建一个样式表文件(.qss文件),例如"style.qss"。
2. 在样式表文件中,使用以下语法来设置border-radius属性:
```css
WidgetName {
border-radius: <value>;
}
```
其中,WidgetName是你想要应用样式的控件的名称,<value>是你要设置的圆角半径的数值。
3. 在你的QT代码中,加载并应用样式表文件。这可以通过以下代码实现:
```cpp
QFile file(":/style.qss"); // 样式表文件的路径
file.open(QFile::ReadOnly | QFile::Text);
QTextStream stream(&file);
QString styleSheet = stream.readAll();
file.close();
QApplication::setStyleSheet(styleSheet);
```
以上代码将样式表文件加载为一个字符串,并通过调用`QApplication::setStyleSheet()`方法将其应用于整个应用程序。
4. 最后,确保你的控件名称与样式表文件中的WidgetName匹配,这样border-radius属性才能生效。
通过遵循以上步骤,你就可以在QT中使用qss的border-radius属性来设置控件的圆角了。记得将WidgetName替换为你想要应用样式的控件名称,并根据需要设置合适的数值。
qcombobox popup设置border-radius
QComboBox的下拉框样式设置border-radius属性后出现黑色边角是因为QComboBox的view窗口属性干扰导致的。为了解决这个问题,你需要设置view窗口的属性以使样式生效。你可以使用以下代码进行设置:
```cpp
ui->comboBox_rand->view()->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint);
ui->comboBox_rand->view()->window()->setAttribute(Qt::WA_TranslucentBackground);
```
此外,如果你想要给下拉框添加边缘阴影效果,你可以使用以下代码:
```cpp
QGraphicsDropShadowEffect *shadowRand = new QGraphicsDropShadowEffect(this);
shadowRand->setOffset(0, 0);
shadowRand->setColor(QColor("#444444"));
shadowRand->setBlurRadius(15);
ui->comboBox_rand->view()->setGraphicsEffect(shadowRand);
```
你可以参考这篇博客文章了解更多关于QComboBox样式的信息:https://www.cnblogs.com/csuftzzk/p/qss_combobox.html
另外,如果你想要实现QCompleter的自动补全下拉列表样式,你可以通过completer->popup()进行设置。具体代码参考以下示例:
```cpp
Widget::Widget(QWidget *parent) : QWidget(parent) {
word_list << "Java" << "C" << "C#" << "PHP" << "Perl" << "Python" << "Delphi" << "Ruby";
search_line_edit = new QLineEdit(this);
completer = new QCompleter(this);
string_list_model = new QStringListModel(word_list, this);
completer->setCaseSensitivity(Qt::CaseInsensitive);
completer->setModel(string_list_model);
search_line_edit->setCompleter(completer);
connect(search_line_edit, SIGNAL(editingFinished()), this, SLOT(editComplete()));
}
void Widget::editComplete() {
QString text = search_line_edit->text();
if (QString::compare(text, QString("")) != 0) {
bool is_contains = word_list.contains(text, Qt::CaseInsensitive);
if (!is_contains) {
word_list << text;
string_list_model->setStringList(word_list);
//completer->setModel(new QStringListModel(wordList, this));
}
}
}
```
阅读全文