变量定义
class Resonator : public QMainWindow
{
Q_OBJECT
public:
Resonator(QWidget *parent = Q_NULLPTR);
void InitUI();
private:
QPushButton * btn;
QLineEdit * line;
QComboBox * choice;
QVector<int> RequiredNum = { 2,2,3 };
QVector<int> CurrentNum = { 0,0,0 };
QVector<QString> Member;
Ui::ResonatorClass ui;
private slots:
void RandomSelect();
};
窗口初始化
void Resonator::InitUI()
{
line = new QLineEdit(this);
btn = new QPushButton(this);
btn->setText(tr("phi(w)"));
choice = new QComboBox(this);
choice->addItem(tr("相声剧本"));
choice->addItem(tr("三句半"));
choice->addItem(tr("合唱排练"));
choice->move(30, 30);
line->move(140, 30);
btn->move(250, 30);
remove("list.txt");
connect(btn, SIGNAL(clicked()), this, SLOT(RandomSelect()));
}
随机数选择
void Resonator::RandomSelect()
{
int curIdx, randIdx, k;
if (Member.size() == 0)
{
line->setText(tr("木有人了"));
return;
}
curIdx = choice->currentIndex();
if (CurrentNum[curIdx] == RequiredNum[curIdx])
{
QMessageBox::warning(this, "warning", "这个项目不要人了");
return;
}
else
{
CurrentNum[curIdx]++;
}
srand(time(NULL));
randIdx = rand() % Member.size();
line->setText(Member[randIdx]);
QFile file("list.txt");
file.open(QIODevice::ReadWrite | QIODevice::Append);
QTextStream out(&file);
out << Member.at(randIdx) << " " << choice->currentText() << endl;
QVector<QString>::iterator iter;
for (k=0,iter = Member.begin(); iter != Member.end(); iter++,k++)
{
if (k == randIdx)
{
Member.erase(iter);
break;
}
}
}