Results 1 to 2 of 2

Thread: Get a segfault when I setText() a label

  1. #1
    Join Date
    Oct 2010
    Posts
    1
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Get a segfault when I setText() a label

    So whenever I call the UpdateLabel function, I get a segmentation fault on the setText() line:

    My Header File:
    Qt Code:
    1. // MainWin.h
    2. #ifndef _MAINWIN_H
    3. #define _MAINWIN_H
    4. #include <QtGui>
    5. class StampCanv;
    6. class MainWin : public QMainWindow
    7. {
    8. Q_OBJECT
    9. public:
    10. MainWin(int argc, char * argv[]);
    11. ~MainWin();
    12. void UpdateLabel(int x, int y);
    13. QLabel *label;
    14. //private slots:
    15. // void startGame();
    16. // void exitGame();
    17. // void updatePlayField();
    18.  
    19. private:
    20. StampCanv *canv;
    21. QWidget *centralWidget;
    22. QListWidget *listWidget;
    23. QWidget *verticalLayoutWidget;
    24. QVBoxLayout *verticalLayout;
    25. QRadioButton *CircleRadio;
    26. QRadioButton *SquareRadio;
    27. QRadioButton *TriangleRadio;
    28. QWidget *verticalLayoutWidget_2;
    29. QVBoxLayout *verticalLayout_2;
    30. QRadioButton *RedRadio;
    31. QRadioButton *GreenRadio;
    32. QRadioButton *BlueRadio;
    33.  
    34. QMenuBar *menuBar;
    35. QMenu *menuFile;
    36. QMenu *menuShape;
    37. QMenu *menuHelp;
    38. //QToolBar *mainToolBar;
    39. QAction *actionNew;
    40. QAction *actionOpen;
    41. QAction *actionSave;
    42. QAction *actionExit;
    43. QAction *actionCircle;
    44. QAction *actionSquare;
    45. QAction *actionTriangle;
    46. QAction *actionAbout;
    47. //QStatusBar *statusBar;
    48. };
    49. #endif
    To copy to clipboard, switch view to plain text mode 

    And The cpp file, The function is on the bottom:

    Qt Code:
    1. //MainWin.cpp
    2. #include "MainWin.h"
    3. #include "StampCanv.h"
    4. #include <QtGui>
    5. #include <iostream>
    6. using namespace std;
    7. MainWin::MainWin(int argc, char * argv[])
    8. {
    9. setObjectName(QString::fromUtf8("MainWin"));
    10. resize(612, 547);
    11. setMouseTracking(true);
    12.  
    13.  
    14. centralWidget = new QWidget;
    15. centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
    16. centralWidget->setMouseTracking(true);
    17. QVBoxLayout * mainLayout = new QVBoxLayout;
    18. canv = new StampCanv;
    19. canv->setMouseTracking(true);
    20. canv->setObjectName(QString::fromUtf8("listWidget"));
    21. canv->setGeometry(QRect(10, 10, 400, 400));
    22. canv->setMinimumSize(QSize(400, 400));
    23. canv->setMaximumSize(QSize(400, 400));
    24. mainLayout -> addWidget(canv);
    25. centralWidget -> setLayout(mainLayout);
    26.  
    27. verticalLayoutWidget = new QWidget(centralWidget);
    28. verticalLayoutWidget->setObjectName(QString::fromUtf8("verticalLayoutWidget"));
    29. verticalLayoutWidget->setGeometry(QRect(430, 140, 160, 71));
    30. verticalLayout = new QVBoxLayout(verticalLayoutWidget);
    31. verticalLayout->setSpacing(6);
    32. verticalLayout->setContentsMargins(11, 11, 11, 11);
    33. verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
    34. verticalLayout->setContentsMargins(0, 0, 0, 0);
    35.  
    36. CircleRadio = new QRadioButton(verticalLayoutWidget);
    37. CircleRadio->setObjectName(QString::fromUtf8("CircleRadio"));
    38. CircleRadio->setChecked(true);
    39.  
    40. verticalLayout->addWidget(CircleRadio);
    41.  
    42. SquareRadio = new QRadioButton(verticalLayoutWidget);
    43. SquareRadio->setObjectName(QString::fromUtf8("SquareRadio"));
    44.  
    45. verticalLayout->addWidget(SquareRadio);
    46.  
    47. TriangleRadio = new QRadioButton(verticalLayoutWidget);
    48. TriangleRadio->setObjectName(QString::fromUtf8("TriangleRadio"));
    49.  
    50. verticalLayout->addWidget(TriangleRadio);
    51.  
    52. verticalLayoutWidget_2 = new QWidget(centralWidget);
    53. verticalLayoutWidget_2->setObjectName(QString::fromUtf8("verticalLayoutWidget_2"));
    54. verticalLayoutWidget_2->setGeometry(QRect(430, 230, 160, 65));
    55. verticalLayout_2 = new QVBoxLayout(verticalLayoutWidget_2);
    56. verticalLayout_2->setSpacing(6);
    57. verticalLayout_2->setContentsMargins(11, 11, 11, 11);
    58. verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
    59. verticalLayout_2->setContentsMargins(0, 0, 0, 0);
    60. RedRadio = new QRadioButton(verticalLayoutWidget_2);
    61. RedRadio->setObjectName(QString::fromUtf8("RedRadio"));
    62. RedRadio->setChecked(true);
    63.  
    64. verticalLayout_2->addWidget(RedRadio);
    65.  
    66. GreenRadio = new QRadioButton(verticalLayoutWidget_2);
    67. GreenRadio->setObjectName(QString::fromUtf8("GreenRadio"));
    68.  
    69. verticalLayout_2->addWidget(GreenRadio);
    70.  
    71. BlueRadio = new QRadioButton(verticalLayoutWidget_2);
    72. BlueRadio->setObjectName(QString::fromUtf8("BlueRadio"));
    73.  
    74. verticalLayout_2->addWidget(BlueRadio);
    75.  
    76. label = new QLabel(this);
    77. label->setObjectName(QString::fromUtf8("label"));
    78. label->setGeometry(QRect(430, 120, 60, 13));
    79. label->setMouseTracking(false);
    80. setCentralWidget(centralWidget);
    81. menuBar = new QMenuBar;
    82. menuBar->setObjectName(QString::fromUtf8("menuBar"));
    83. menuBar->setGeometry(QRect(0, 0, 612, 21));
    84. menuBar->setMouseTracking(false);
    85. menuFile = new QMenu;
    86. menuFile->setObjectName(QString::fromUtf8("menuFile"));
    87. menuFile->setMouseTracking(false);
    88. menuShape = new QMenu;
    89. menuShape->setObjectName(QString::fromUtf8("menuShape"));
    90. menuHelp = new QMenu;
    91. menuHelp->setObjectName(QString::fromUtf8("menuHelp"));
    92. menuBar->addMenu(menuFile);
    93. menuBar->addMenu(menuShape);
    94. menuBar->addMenu(menuHelp);
    95.  
    96.  
    97. /*mainToolBar = new QToolBar;
    98.   mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
    99.   mainToolBar->setMouseTracking(false);
    100.   addToolBar(Qt::TopToolBarArea, mainToolBar);*/
    101.  
    102. actionNew = new QAction(menuFile);
    103. actionNew->setText("New");
    104. actionOpen = new QAction(menuFile);
    105. actionOpen->setText("Open");
    106. actionSave = new QAction(menuFile);
    107. actionSave->setText("Save");
    108. actionExit = new QAction(menuFile);
    109. actionExit->setText("Exit");
    110. actionCircle = new QAction(menuShape);
    111. actionCircle->setText("Circle");
    112. actionCircle->setCheckable(true);
    113. actionCircle->setChecked(true);
    114. actionCircle->setIconVisibleInMenu(true);
    115. actionSquare = new QAction(menuShape);
    116. actionSquare->setText("Square");
    117. actionSquare->setCheckable(true);
    118. actionTriangle = new QAction(menuShape);
    119. actionTriangle->setText("Triangle");
    120. actionTriangle->setCheckable(true);
    121. actionAbout = new QAction(menuHelp);
    122. actionAbout->setText("About");
    123.  
    124.  
    125. menuBar->addAction(menuFile->menuAction());
    126. menuBar->addAction(menuShape->menuAction());
    127. menuBar->addAction(menuHelp->menuAction());
    128. menuFile->addAction(actionNew);
    129. menuFile->addAction(actionOpen);
    130. menuFile->addAction(actionSave);
    131. menuFile->addAction(actionExit);
    132. menuShape->addAction(actionCircle);
    133. menuShape->addAction(actionSquare);
    134. menuShape->addAction(actionTriangle);
    135. menuHelp->addAction(actionAbout);
    136.  
    137. setWindowTitle(QApplication::translate("MainWin", "IPA2", 0, QApplication::UnicodeUTF8));
    138. CircleRadio->setText(QApplication::translate("MainWin", "Circle", 0, QApplication::UnicodeUTF8));
    139. SquareRadio->setText(QApplication::translate("MainWin", "Square", 0, QApplication::UnicodeUTF8));
    140. TriangleRadio->setText(QApplication::translate("MainWin", "Triangle", 0, QApplication::UnicodeUTF8));
    141. RedRadio->setText(QApplication::translate("MainWin", "Red", 0, QApplication::UnicodeUTF8));
    142. GreenRadio->setText(QApplication::translate("MainWin", "Green", 0, QApplication::UnicodeUTF8));
    143. BlueRadio->setText(QApplication::translate("MainWin", "Blue", 0, QApplication::UnicodeUTF8));
    144. label->setText("(x1, y1)");
    145. menuFile->setTitle(QApplication::translate("MainWin", "File", 0, QApplication::UnicodeUTF8));
    146. menuShape->setTitle(QApplication::translate("MainWin", "Shape", 0, QApplication::UnicodeUTF8));
    147. menuHelp->setTitle(QApplication::translate("MainWin", "Help", 0, QApplication::UnicodeUTF8));
    148. setMenuBar(menuBar);
    149.  
    150. }
    151. MainWin::~MainWin()
    152. {
    153. }
    154. void MainWin::UpdateLabel(int x, int y)
    155. {
    156. cout << "UPDATE" << endl;
    157. cout << "X: " << x << endl;
    158. cout << "Y: " << y << endl;
    159. label->setText("(x2,y2)");
    160. }
    To copy to clipboard, switch view to plain text mode 

    Obviously, I'll change what the update function will change it to later, but I can't even get it to finish the function call.

  2. #2
    Join Date
    Jan 2006
    Location
    Germany
    Posts
    4,380
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows Symbian S60
    Thanks
    19
    Thanked 1,005 Times in 913 Posts
    Wiki edits
    5

    Default Re: Get a segfault when I setText() a label

    check if label is a valid pointer!

Similar Threads

  1. [Qt-4.7.0-arm] Segfault on hello->show()
    By LeFlou in forum Qt for Embedded and Mobile
    Replies: 6
    Last Post: 2nd November 2010, 08:44
  2. label setText value is 0
    By babygal in forum Qt Programming
    Replies: 3
    Last Post: 15th July 2010, 07:58
  3. libkcddb segfault
    By skepticalgeek in forum Qt Programming
    Replies: 0
    Last Post: 23rd March 2010, 01:25
  4. Segfault
    By Dumbledore in forum Qt Programming
    Replies: 3
    Last Post: 12th November 2007, 07:31
  5. segfault
    By conexion2000 in forum Qt Programming
    Replies: 1
    Last Post: 31st May 2006, 12:34

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.