在Qt中,当我们使用a的功能addAction时QToolBar:
_LastBar->addAction(QtExtensions::Action(name, icon, func));
Run Code Online (Sandbox Code Playgroud)
我们如何检索QToolButton为该动作生成的?
或者,如果不可能,如何找到的最后一个按钮/小部件QToolBar?
我正在使用 qt creator 为 vtk 应用程序创建一个 gui。
我做了一个#define 操作,我想将该命令分配给 QPushButton。
如果按下按钮,如何使按钮重现我的定义?
例子。用户界面->按钮->...
我几乎是Qt的初学者.无论如何,一旦按下按钮,我正在尝试使用信号和插槽来显示小部件.我创建了小部件,并且完成了connect()这一切,但是我在SLOT()中添加了什么呢?我试过show(小部件),但老实说我不知道该放什么.
我需要将内部资源中的图像作为QPushButton的背景图像.我还需要调整图像的大小到按钮的大小.我在这里找到了一些方法来做到这一点,但似乎没有任何工作.在上一个回复中,建议使用以下代码:
QPixmap pixmap("image.jpg");
QPalette palette;
QPushButton *button= new QPushButton(this);
palette.setBrush(button->backgroundRole(), QBrush(pixmap));
button->setFlat(true);
button->setAutoFillBackground(true);
button->setPalette(palette);
Run Code Online (Sandbox Code Playgroud)
所以我拿了那个代码并稍微改了一下因为我使用的是用QTCreator制作的ui:
void MyDialog::SetBgImage(QWidget *pButton)
{
QPixmap pixmap(":/Icons/images/Sfondo.png");
QPalette palette = pButton->palette();
palette.setBrush(pButton->backgroundRole(), QBrush(pixmap)); // 1
QPushButton *pPButton = qobject_cast<QPushButton *>(pButton);
if (pPButton!=NULL)
pPButton->setFlat(true);
pButton->setAutoFillBackground(true);
pButton->setPalette(palette); // 2
Run Code Online (Sandbox Code Playgroud)
}
在构造函数中,我以这种方式调用它:
SetBgImage(ui->pushButton_Button1);
Run Code Online (Sandbox Code Playgroud)
显示对话框时,按钮显示正确.不幸的是,当我关闭对话框时,我收到以下错误消息:
*检测到glibc* ./MyAppName:malloc():内存损坏:0x0047dc78***
如果我删除标有// 1的行或标有// 2的行,则错误消失.
有任何想法吗?
我想在QToolButton里面添加QLineEdit.
我想清除该QLineEdit按钮点击的控制文本.
例如,在谷歌图片中如何:

我看了看:
但仍未解决我的问题.
提前致谢.
是否可以标记 Qt 小部件?我正在以编程方式生成 QPushButtons,据我所知,无法区分它们。我检查了文档,找不到任何东西。什么是替代方案?
for(int i = 0; i < 6; i++) {
QPushButton *s = new QPushButton("Select");
...
}
Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在QVariant中存储QPushButton.更确切地说,我试图在具有该功能的QStandardItemModel中使用它setData.这就是我想要做的事情:
QPushButton* button = new QPushButton("Update");
setData(index(0, 0), "Button");
setData(index(0, 1), button);
Run Code Online (Sandbox Code Playgroud)
但显然,它不能像那样工作,所以我尝试了这个:
QVariant variant;
variant.setValue(button);
setData(index(0, 1), QVariant::fromValue(variant));
Run Code Online (Sandbox Code Playgroud)
它也不起作用.我想在不使用QTableView的情况下这样做(我知道在这种视图中有一个setIndexWidget).
提前致谢!
我想创建一个带有文本和图标的按钮,例如Next =>,并且我正在使用 QPushButton。
我尝试执行以下操作:
btn2 = QtGui.QPushButton('Next',self)
btn2.setIcon(QIcon(QPixmap("next.png")))
Run Code Online (Sandbox Code Playgroud)
但我得到了:
我希望箭头(图标)出现在文本的右侧(“下一步”)或下方。请帮忙。
我正在尝试将图标向右对齐并将文本放在 QPushButton 中,但我目前对结果不满意。我还希望图标完全位于 QPushButton 的右侧,而不是与文本居中。同样,我希望它能够与位于右侧或左侧的图标一起使用,同时能够选择按钮的宽度。你有解决方案吗 ?你能帮助我吗 ?这是我现在的代码:
\n\n# Les boutons du bas pour passer d\'une page \xc3\xa0 l\'autre\nbout_pag_charg_enr_phase_1 = QPushButton("Aller directement \xc3\xa0 la page de maintenance de la S\xc3\xa9quence")\nbout_pag_charg_enr_phase_1.setFixedWidth(406)\nbout_pag_charg_enr_phase_1.setIcon(QIcon(\'logo_png_apsc\'+os.sep+\'icone_3_fleches_droite_apsc_256x256.png\'))\nbout_pag_charg_enr_phase_1.setIconSize(QSize(16, 16))\nbout_pag_charg_enr_phase_1.setLayoutDirection(Qt.RightToLeft)\nbout_pag_charg_enr_phase_1.setStyleSheet("text-align: center; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #fdfbf7, stop: 1 #6190F2);border-style: solid;border-width: 2px;border-radius: 8px;border-color: #9BB7F0;padding: 3px")\nbout_pag_suivante_phase_1 = QPushButton("Page suivante")\nbout_pag_suivante_phase_1.setFixedWidth(120)\nbout_pag_suivante_phase_1.setIcon(QIcon(\'logo_png_apsc\'+os.sep+\'icone_2_fleches_droite_apsc_256x256.png\'))\nbout_pag_suivante_phase_1.setIconSize(QSize(16, 16))\nbout_pag_suivante_phase_1.setLayoutDirection(Qt.RightToLeft)\nbout_pag_suivante_phase_1.setStyleSheet("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #fdfbf7, stop: 1 #6190F2);border-style: solid;border-width: 2px;border-radius: 8px;border-color: #9BB7F0;padding: 3px")\nRun Code Online (Sandbox Code Playgroud)\n\n我得到什么:
\n\n\n\n我想要的是: …
我可以通过在样式表中设置“border-radius”来将 QT QPushButton 设置为圆形按钮,但是我只想将按钮的右边缘(右上角和右下角)设置为圆形。怎么做?