Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2012, 14:02   #1
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию Проблема с функциями

Измучалась уже вся, делаю по книге Бланшет и Саммерфилд программу.
С меню проблемы. У подруги вроде бы работает, она тоже по книге делала - у меня нет!
Вот mainwindow.cpp

Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
#include <QMenu>
#include <QMenuBar>
#include <QWidget>

MainWindow::MainWindow()
{
createActions();
createMenu();
setWindowTitle("name");
gen = new QPushButton("gen");
qtextbox = new QTextEdit("tesxtbox");
combo = new QComboBox;
QHBoxLayout *m1 = new QHBoxLayout;
m1->addWidget(gen);
m1->addWidget(qtextbox);
QVBoxLayout *m2 = new QVBoxLayout;
m2->addWidget(combo);
m2->addLayout(m1);
setLayout(m2);
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
combo->addItem(QString::fromLocal8Bit("Одно число"));
combo->addItem(QString::fromLocal8Bit("Несколько"));
setFixedSize(500,500);
}


int getnumber(int a)//данная функция возвращает количество вариантов генерируемого типа поля
{
    int b[20];
    b[1]=16;
    return b[a];
}

int randnumber(int a)//данная функция возвращает случайный номер задания для массива
{
a = qrand()%(a-0+1)+0;
    return a;
}

QString listofgenfield(int a,int b)
{
    if(b==2){a+=16;}
QString S;
QStringList list;
list << "min"
<< "max"
<< "min по модулю"
<< "max по модулю"
<< "первое равное нулю"
<< "числа, модуль которых лежит в диапазоне [a,b]";
S = list[a];
return S;
}

void MainWindow::on_gen_clicked()
{
QString str = qtextbox->toPlainText();
int a;
for(int i=0;i<str.size();i++)
{
    if((str[i]=='*') && (str[i+1]=='*') && (str[i+2]=='*') && (str[i+4]=='*') && (str[i+5]=='*') && (str[i+6]=='*'))
    {
        QString b = str.mid(i+3,1);
        bool ok;
        a=b.toInt(&ok);
        b =  listofgenfield(randnumber(getnumber(a)),a);
        str.replace(i,7, QString::fromLocal8Bit(b.toAscii()));
        qtextbox->clear();
        qtextbox->insertPlainText(str);
        a=0;
    }
}
}


void MainWindow::on_combo_activated(QString )
{

    if(combo->currentText()==QString::fromLocal8Bit("Одно число"))
    {
    qtextbox->textCursor().insertText("***1***");
    }
    else if(combo->currentText()==QString::fromLocal8Bit("Несколько"))
    {
    qtextbox->textCursor().insertText("***2***");
    }
    else
    {
    qtextbox->textCursor().insertText("***3***");
    }

}

void MainWindow::createActions()
{
    /* qtemp = new QAction(tr("Temp"),this);
    qtask = new QAction(tr("Task"),this);
    qdel = new QAction(tr("Delete"),this);*/
    qexit = new QAction(tr("exit"),this);
    connect(qexit,SIGNAL(triggered()),this,SLOT(close()));
}

void MainWindow::createMenu()
{
    qmenu= menuBar()->addMenu(tr("Menu"));
    /*qmenu->addAction(qtemp);
    qmenu->addAction(qtask);
    qmenu->addAction(qdel);*/
    separatorAction = qmenu->addSeparator();
    qmenu->addAction(qexit);
}
MainWindow.h
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDialog>

class QPushButton;
class QAction;
class QMenu;
class QTextEdit;
class QComboBox;
class MainWindow : public QDialog
{
    Q_OBJECT

public:
    MainWindow();
private:
    void createActions();
    void createMenu();
    QPushButton *gen;
   /* QAction *qtemp;
    QAction *qtask;
    QAction *qdel;*/
    QAction *qexit;
    QAction *separatorAction;
    QMenu *qmenu;
    QTextEdit * qtextbox;
    QComboBox *combo;

    private slots:
    void on_combo_activated(QString );
    void on_gen_clicked();


};

#endif // MAINWINDOW_H
main.cpp

Код:
#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
у меня такое предчувствие, что вообще ни одна функция просто не работает. и menuBar() не работает.
Помогите пожалуйста. Уже не знаю, что делать.
PinkPink вне форума Ответить с цитированием
Старый 29.03.2012, 00:01   #2
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию

удалите пожалуйста тему или закройте
PinkPink вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си проблема с функциями( blain Помощь студентам 6 02.02.2012 14:44
Проблема с функциями! Ислам Помощь студентам 21 03.03.2011 21:35
Проблема с виртульными функциями petrovich985 Общие вопросы C/C++ 7 18.12.2010 20:39
Проблема с функциями из math.h maryan.vetrov Общие вопросы C/C++ 2 01.08.2010 19:34
проблема с функциями world12_tk Помощь студентам 6 03.03.2009 19:34