将 QCheckbox 调整为 QTableWidget : Qt
Adjust QCheckbox into QTableWidget : Qt
我在将 QCheckbox
调整为 QTableWidget
时遇到问题。
它在 Mac 和 Linux 中按预期工作,但在 Windows 中产生问题。
我用谷歌搜索并尝试了不同的解决方案,但没有解决我的问题。
代码:
QWidget* cellWidget = new QWidget();
QCheckBox *box = new QCheckBox();
box->setCheckState(Qt::Unchecked);
QHBoxLayout* layout = new QHBoxLayout(cellWidget);
layout->addWidget(box);
layout->setAlignment(Qt::AlignCenter);
layout->setContentsMargins(0, 0, 0, 0);
cellWidget->setLayout(layout);
ui->twidget_header->setCellWidget(0, 0, cellWidget);
Mac OS O/P :符合预期
Win OS O/P:复选框大小和对齐方式有问题
.
我的应用程序是在 Qt 5.9
中为 Mac、Win 和 Linux 平台创建的。
如果您需要有关该问题的更多信息,请告诉我。
小部件的设计和大小由样式决定。要覆盖本机样式(无论 QApplication
在目标系统上设置为默认值),您必须派生自己的 QStyle
for that target system and and reimplement pixelMetric()
到 return QStyle::PM_IndicatorWidth
和 QStyle::PM_IndicatorHeight
(我认为;没有检查)。
当您创建 Qt 应用程序并支持不同分辨率时,任何 QWidget 都可能发生此问题。
要克服 QWidget
(QCheckbox/QRadiobutton) 的大小,您只需覆盖 QWidget class.
创建 customcheckbox.h
文件并覆盖 QCheckbox
小部件。
class CustomCheckBox : public QCheckBox
{
Q_OBJECT
public:
CustomCheckBox(QWidget *parent=NULL);
private:
bool m_isChecked;
public slots:
void emitToggleSignal(bool);
};
根据您的要求实施 customcheckbox.cpp
文件。
通过这样做,QCheckbox
将根据相应的分辨率自动调整大小。
希望这会在将来节省某人的时间。
谢谢。
我在将 QCheckbox
调整为 QTableWidget
时遇到问题。
它在 Mac 和 Linux 中按预期工作,但在 Windows 中产生问题。
我用谷歌搜索并尝试了不同的解决方案,但没有解决我的问题。
代码:
QWidget* cellWidget = new QWidget();
QCheckBox *box = new QCheckBox();
box->setCheckState(Qt::Unchecked);
QHBoxLayout* layout = new QHBoxLayout(cellWidget);
layout->addWidget(box);
layout->setAlignment(Qt::AlignCenter);
layout->setContentsMargins(0, 0, 0, 0);
cellWidget->setLayout(layout);
ui->twidget_header->setCellWidget(0, 0, cellWidget);
Mac OS O/P :符合预期
Win OS O/P:复选框大小和对齐方式有问题
我的应用程序是在 Qt 5.9
中为 Mac、Win 和 Linux 平台创建的。
如果您需要有关该问题的更多信息,请告诉我。
小部件的设计和大小由样式决定。要覆盖本机样式(无论 QApplication
在目标系统上设置为默认值),您必须派生自己的 QStyle
for that target system and and reimplement pixelMetric()
到 return QStyle::PM_IndicatorWidth
和 QStyle::PM_IndicatorHeight
(我认为;没有检查)。
当您创建 Qt 应用程序并支持不同分辨率时,任何 QWidget 都可能发生此问题。
要克服 QWidget
(QCheckbox/QRadiobutton) 的大小,您只需覆盖 QWidget class.
创建 customcheckbox.h
文件并覆盖 QCheckbox
小部件。
class CustomCheckBox : public QCheckBox
{
Q_OBJECT
public:
CustomCheckBox(QWidget *parent=NULL);
private:
bool m_isChecked;
public slots:
void emitToggleSignal(bool);
};
根据您的要求实施 customcheckbox.cpp
文件。
通过这样做,QCheckbox
将根据相应的分辨率自动调整大小。
希望这会在将来节省某人的时间。
谢谢。