Mind posting the entire code? Hard to say whats wrong without the full context.
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QGridLayout> #include <QPushButton> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void callButtonClicked(); void insertChar(); void hangUpButtonClicked(); protected: void changeEvent(QEvent *e); private: Ui::MainWindow *ui; void CreateLetter(QString letter); QGridLayout *lettersLayout; int row, col; QString abc; int currentLetter; int numberOfLettersPerRow; QList<QPushButton*> *existingLetterButtons; void init(); int getNumberOfContacts(); }; #endif // MAINWINDOW_H
#include "mainwindow.h" #include "ui_mainwindow.h" // Something needs to be included to make this work. // I Don't really know what, but from the help - I can realize that it is : #include <qcontactmanager.h> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); lettersLayout = new QGridLayout(); lettersLayout->setMargin(0); abc = "abcdefghijklmnopqrstuvwxyz"; numberOfLettersPerRow = 3; existingLetterButtons = new QList<QPushButton*>(); init(); } int MainWindow::getNumberOfContacts() { // TODO - Here I want to fetch all the number of contacts in the contact list, and itterate through them. // I can't get this to compile... return 0; } void MainWindow::init() { row = col = currentLetter = 0; } MainWindow::~MainWindow() { delete ui; } void MainWindow::hangUpButtonClicked() { for (int i = 0; i < existingLetterButtons->size(); i++) { QPushButton *tempButton = existingLetterButtons->at(i); delete tempButton; } existingLetterButtons->clear(); init(); } void MainWindow::changeEvent(QEvent *e) { QMainWindow::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void MainWindow::callButtonClicked() { CreateLetter(abc.at(currentLetter)); if (currentLetter == abc.length() - 1) { currentLetter = 0; } else { currentLetter++; } } void MainWindow::insertChar() { QPushButton *tempButton = qobject_cast<QPushButton *>(QObject::sender()); ui->contactEntry->insert(tempButton->text()); } void MainWindow::CreateLetter(QString letter) { QPushButton *myButton = new QPushButton(); myButton->sizePolicy().setVerticalPolicy(QSizePolicy::Minimum); myButton->sizePolicy().setHorizontalPolicy(QSizePolicy::Minimum); myButton->sizeHint().setHeight(10); myButton->sizeHint().setWidth(10); existingLetterButtons->insert(existingLetterButtons->size(),myButton); myButton->setText(letter); connect(myButton, SIGNAL(clicked()), this, SLOT(insertChar())); lettersLayout->addWidget(myButton, col, row); if (row == numberOfLettersPerRow - 1) { row = 0; col++; } else { row++; } ui->lettersFrame->setLayout(lettersLayout); myButton->show(); }
#include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; #if defined(Q_WS_S60) w.showMaximized(); #else w.show(); #endif return a.exec(); }