- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前为动态创建的 QPushButton 使用以下样式表属性
string mystyle = "QPushButton { border: 1px solid #8f8f91; border-radius: 1px; min-width: 90px; min-height: 18px;}"
The QPushButton also has an icon next to it - The QPushbutton is inside a QToolBar
当应用程序在我的计算机上运行时,这种样式工作正常。但是,当应用程序在显示被放大的另一个系统上运行时,问题就出现了。 (在 Windows-7 上,这是通过在控制面板中显示并选择 Larger-150% 来完成的)。当应用程序在具有放大显示的系统上运行时,这就是我得到的。 (其中的文字应该是“Hello MyBig World!!”)注意感叹号不见了
我相信只有当按钮中有图标时才会出现此问题。没有图标 QpushButton 看起来不错。这是没有图标的样子。请注意,文本现在完全可见。
这就是我创建 QPushButton 的方式
QPushButton *button_test = new QPushButton( "Hello MyBig World!!" ,this);
button_test->setStyleSheet(mystyle.c_str());
button_test->setIcon(QIcon(":/../SomeFile.png"));
关于为什么会发生这种情况以及如何解决此问题的任何建议 - 我的计算机上的按钮宽度很好,所有文本都带有感叹号。但是所有的文字都没有出现在字体被放大的电脑上。为了在该计算机上显示整个文本,我需要重新设置样式表的样式,更改并增加最小宽度。我不想一直重新设置样式,并且想知道解决此问题的正确且有效的方法。
更新
这是我现在使用的代码
std::string pbstyles = "QPushButton { border: 1px solid #8f8f91; border-radius: 1px; font: 12px;"
"background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #f6f7fa, stop: 1 #dadbde); "
"padding-right:50px;padding-left:50px;height:25px; }"
"QPushButton:pressed { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #dadbde, stop: 1 #f6f7fa); }"
"QPushButton:hover{background-color: qlineargradient(spread:pad, x1:0, y1:0.0568182, x2:1, y2:0.0454545, stop:0 rgba(85, 170, 255, 255), stop:1 rgba(255, 255, 255, 255));}";
std::string ArrowStyle = "QPushButton::menu-indicator {/*background-color: darkblue ;*/ subcontrol-origin: padding; margin-right: -60px}";
pbstyles+=ArrowStyle;
QMenu *menu = new QMenu("This is a button",this);
QPushButton *button = new QPushButton( menu->title(),this);
button->setMenu(menu_contacts);
button->setStyleSheet(pbstyles.c_str());
button->setIcon(QIcon(":/someicon.ico"));
button->setIconSize(QSize(16, 16));
ui.toolBar->addWidget(button_contacts);
这就是我得到的(注意文本仍然被切碎了 :( !!!!)
最佳答案
在我的测试中发生这种情况是因为图标和按钮的文本被放大了,但按钮没有,要解决这个问题你可以使用这个:
QString stylesheet = ...font: 12px;... //Or another size that you expect the button text must have.
和:
pushButton->setIconSize(QSize(16, 16)); //Or another size that you expect the button icon must have.
这些设置应保证按钮的图标和文本在放大和未放大的桌面上具有相同的大小。
关于c++ - Qt : icon messing the width of QPushButton - Adjusting icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20943762/
我创建了一个 GUI 宽度的 Qt Creator (Qt 5.0.1),当然也使用了布局。出于美学原因,我希望 QPushButton 与放置在 GUI 其他角落的另一个 QPushButton 具
如何扩展棕色的对象(QPushButton)。 坦率地说,我曾尝试通过添加 Horizontal layout 来做到这一点,但似乎效果不佳。 如图所示,当小部件最大化时,我想扩展(仅宽度)特定
我有一个二维数组QPushButton,当用户点击它时我如何获取按钮的索引?例如当用户点击按钮 a[2][3] 时,它会显示 (2,3) ? 最佳答案 这个例子是这样的: Qt 4/5 使用对象名称
最近想要那个QPushButton当鼠标指针进入时可以发出信号。我怎样才能做到? 我知道 QPushButton 有一些已经定义好的信号,比如 clicked() , pressed() , dest
我是 PySide 的新手。我想在其单击的插槽中获取 QPushButton obj(例如使用它来获取其文本)。 button = QtGui.QPushButton("start go") butt
请注意 redb.clicked[bool].connect(self.setColor) 行,为什么要添加 [bool] 部分?我试图删除该部分,将行修改为 redb.clicked.connect
我在 Qt Designer 中设计了两种不同的 QPushButton。一个是默认的,另一个我想说清楚。在 QT Designer 中,我将后者的初始样式表设置如下: background-colo
我有一个包含以下结构的小部件和布局的大布局: QVBoxLayout QTableView QPushButton 我将布局上的边距、内边距和间距设置为 0。这在 Mac OS X 上呈现的方
我有以下按钮样式表: QPushButton:hover{ background: qlineargradient(x1 : 0, y1 : 0, x2 : 0, y2 : 1,
我有两个小部件(真实的和假的),其中一个有 QPushButton。现在我希望在另一个小部件中显示相同的按钮。我该怎么做? 我不想创建副本,我希望在不更改父级的情况下同时显示另一个小部件上的相同 QO
我在我的程序中使用 QPushButton()。使用这些按钮,我可以旋转我的对象。 到目前为止工作正常。唯一的问题是我必须单击多次才能进一步旋转对象。这有点烦人。只要我按下按钮并且对象将进一步旋转,按
我正在使用以下代码创建一个按钮。它工作正常。但我在左角得到了黄色矩形。为什么?请帮我。提前致谢, backButton = new QPushButton(tr("Back"));
我想让一些按钮看起来像你在 Skype 中看到的按钮。如何设计 QPushButton自定义形状?我不知道这样做。所以我需要一些建议。例如,我想要我的 QPushButton看起来像这样 image
我想将 QPushButton 对齐到右下角,但没有固定大小,因为如果我使用固定大小并调整窗口大小,它看起来就不再好看了。这是我的代码: self.copy_btn = QtWidgets.Q
我从 Qt 开始,每当有人将鼠标悬停在 QPushButton 上时,我想将 QPushButton 设置为不同的图标。到目前为止,这是我的代码: #include QPushButton *but
我在使用 Qt 4.6.0 和 QPushButtons 快捷方式时遇到问题: 当用户单击按钮时,我想在QTextEdit中显示特殊文本,但仅当按下按钮时,如下一旦发布,我希望出现另一个文本。 一切正
我从 Qt 开始,我想在有人将鼠标悬停在 QPushButton 上时将其设置为不同的图标。到目前为止,这是我的代码: #include QPushButton *button = new QPus
是否可以向 QPushButton 添加工具提示。我的意思是,当您将鼠标悬停在按钮上时,会出现一个小文本框(通常是黄色)并告诉用户该按钮正在做什么。 谢谢。 最佳答案 QPushButton 是 QW
我尝试在通过 QtWidgets.QColorDialog 设置 PNG 图像的颜色后更改其颜色。使用Python ---> 至 尽管如此,当我应用代码时,结果是: 它改变了我的PNG图像的背景 PN
我正在连接一个 QPushButton,它将在其中隐藏/显示框架内的小部件。 我使用 .ui 方法加载/创建了我的 GUI。 对于这个 QPushButton,我设置并检查了属性 setChecked
我是一名优秀的程序员,十分优秀!