因此,我测试了许多其他类型的切换按钮制造商,但这些都不起作用。 但有人可以说出为什么这不起作用:
private void button11_Click(object sender, EventArgs e)
{
bool on = true;
{
if (!on)
button11.Text = "Off";
button11.BackColor = Color.LightGray;
on = true;
}
if (on == true)
{
button11.Text = "On";
button11.BackColor = Color.DimGray;
on = false;
}
}
感谢
答案 0 :(得分:1)
您的解决方案无法正常运行,因为每次点击都会执行初始化on
到true
的代码。
这意味着您的if
语句始终检查相同的真值。
您应该通过跟踪方法中的on
标志来实现它,然后在其中进行检查。如下所示:
public partial class Form1 : Form
{
bool button1on = false;
private void button1_Click(object sender, EventArgs e)
{
if(button1on)
{
button1on = false;
button11.Text = "Off";
button11.BackColor = Color.LightGray;
}
else
{
button1on = true;
button11.Text = "On";
button11.BackColor = Color.DimGray;
}
}
}
答案 1 :(得分:0)
我认为这就是你要找的东西。只需在您的函数之外声明connect(tableWidget->selectionModel(), &QItemSelectionModel::selectionChanged,
[&](const QItemSelection&, const QItemSelection&) {
QTimer::singleShot(0, [&]() {
qDebug() << "selected =" << tableWidget->selectionModel()->selectedIndexes() << endl;
});
});
并修复on
语句。
请注意,我将第二个if
语句更改为if
。如果您想使用else
,则需要使用if
。否则,第一个else if
块会将if
设置为on
,然后第二个false
会看到if
并将on == false
设置回on
1}}。
true