小编use*_*855的帖子

仅在选中 QCheckBox 时发出信号

我正在根据一些用户输入动态创建一组 QCheckBox,如下所示:

QWidget *wid = new QWidget();
QVBoxLayout *layout = new QVBoxLayout();
for(int i=0; i<NumberModes; i++)
{
    int k = Amplitudes(i,0);
    int m = Amplitudes(i,1);

    QString ks = QString::number(k);
    QString ms = QString::number(m);
    QString position = QString::number(i);
    QString mode = "A"+ks+ms;

    QCheckBox *check = new QCheckBox(mode);
    connect(check, SIGNAL(toggled(bool)), &mapper, SLOT(map()));
    connect(check, SIGNAL(toggled(bool)), &SelectModes, SLOT(map()));

    mapper.setMapping(check,position);
    SelectModes.setMapping(check,mode);
    layout->addWidget(check);
    updateGeometry();
}


wid->setLayout(layout);
ui->scrollArea->setWidget(wid);
Run Code Online (Sandbox Code Playgroud)

QSignalMapper 然后连接到另一个执行一些计算的类:

connect(&SelectModes, SIGNAL(mapped(QString)), this, SIGNAL(CheckBoxClicked2(QString)));
connect(this, SIGNAL(CheckBoxClicked2(QString)), &Supress2, SLOT(ListenSelectedModes(QString)));
connect(&mapper, SIGNAL(mapped(QString)), this, SIGNAL(CheckBoxClicked(QString)));
connect(this, SIGNAL(CheckBoxClicked(QString)), &Suppress, SLOT(ListenSelectedModes(QString)));
Run Code Online (Sandbox Code Playgroud)

我需要的是这些类只在 …

c++ qt signals-slots

2
推荐指数
1
解决办法
5405
查看次数

从.txt文件中访问double

我有一个.txt文件,看起来像:

(0.781860352, -11.6927013, 7.20992613)  
(0.364501476, -9.41256046, 6.87873077)  
(0.394773483, -7.85253429, 6.90275288)
Run Code Online (Sandbox Code Playgroud)

我需要一个代码来分别从每一行访问每个double.我遇到了解决这个问题的麻烦.有任何想法吗?

谢谢!

更新:

所以,就像我说的那样,我使用Kerrek SB的建议从每一行访问每个双,然后我将这些值存储到向量的组件中,然后我访问每个组件并执行操作(比如将它们相乘),以及将结果存储到数组中; 最后我添加了数组的内容.无论如何,这是代码:

int main() {

    //=============================
    //Initial Declarations
    //=============================

Vector3 r(0,0,0);
int num = 0 , i;
string line;
char c, d1, d2, d3, d4;
double v1, v2, v3 , b[num];

   //=============================
   //Counting Lines in File
   //=============================

ifstream is;
is.open ("data.txt");
while (is.good())
{
c = is.get();
if (c=='\n')num++;
}
is.close();
cout<<"Number of lines in file is "<<num<<endl;

   //=============================
   //Getting Data
   //=============================

ifstream infile("data.txt");

for (line …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
117
查看次数

标签 统计

c++ ×2

qt ×1

signals-slots ×1