gpt4 book ai didi

c++ - 从 QT 复选框到 Postgresql 的星期选择

转载 作者:行者123 更新时间:2023-11-30 04:24:36 27 4
gpt4 key购买 nike

我的 Qt 应用程序 GUI 中有一组复选框代表一周中的几天,我选择一天或多天,然后根据选中的复选框,将查询字符串传递给 PostgreSQL 以显示这些日期的某些数据天-例如如果我检查星期一和星期三,extract (dow from timestamp) = 1 或 extract(dow from timestamp) = 3 应该添加到我的查询中。我刚刚输入了一个粗略的解决方案——虽然在我写这篇文章时还没有测试过——但我想知道是否有我在这里遗漏的更短和更优雅的方法。代码如下: - queryAdditionCalltimePartqueryAdditionCallStampPart 字符串稍后添加到我的主查询的相关部分 QString 之前执行-

bool checkboxArray[7];
bool mult = false;
checkboxArray[0] = this->ui->checkBoxMonday->isChecked();
checkboxArray[1] = this->ui->checkBoxTuesday->isChecked();
checkboxArray[2] = this->ui->checkBoxWednesday->isChecked();
checkboxArray[3] = this->ui->checkBoxThursday->isChecked();
checkboxArray[4] = this->ui->checkBoxFriday->isChecked();
checkboxArray[5] = this->ui->checkBoxSaturday->isChecked();
checkboxArray[6] = this->ui->checkBoxSunday->isChecked();
QString queryAdditionCalltimePart = "";
QString queryAdditionCalStampPart = "";
int count = 0;

queryAdditionCalltimePart.append("(");
queryAdditionCalStampPart.append("(");
for(int i = 0; i < 7; i++)
{
if(checkboxArray[i] == true)
{
count++;
}
}


int x = 0;

for(int i = 0; i < 7; i++)
{
if(checkboxArray[i] == true)
{
queryAdditionCalltimePart.append("(SELECT EXTRACT(DOW FROM calltime) = '" +QString::number(i+1)+"')");
queryAdditionCalStampPart.append("(SELECT EXTRACT(DOW FROM cal.stamp) = '" +QString::number(i+1)+"')");

}

if(count > 1 && checkboxArray[i] == true)
{
if(x == count - 1)
{
}
else
{
queryAdditionCalltimePart.append("OR");
queryAdditionCalStampPart.append("OR");
x++;
}
}
}


queryAdditionCalltimePart.append(")");
queryAdditionCalStampPart.append(")");

最佳答案

您可以向 Qt 中的任何小部件添加属性,http://qt-project.org/doc/qt-4.8/qobject.html#setProperty .该属性可以包含您想要的任何信息。

在您的特定情况下,将 SQL 字符串附加为每个复选框的属性会更清晰。

this->ui->checkBoxMonday->setProperty("sql", 
"(SELECT EXTRACT(DOW FROM calltime) = '" +QString::number(i+1)+"') OR ";

收到用户输入后,只需附加复选框属性并删除最后的 OR。

关于c++ - 从 QT 复选框到 Postgresql 的星期选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12632667/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com