void MainWindow::displaySocketStateOnStatusBar(QAbstractSocket::SocketState socketState) { /* switch (socketState) { case QAbstractSocket::UnconnectedState: ui->statusBar->showMessage("Not connected"); break; case QAbstractSocket::HostLookupState: ui->statusBar->showMessage("Looking up host..."); break; case QAbstractSocket::ConnectingState: ui->statusBar->showMessage("Connecting to host..."); break; case QAbstractSocket::ConnectedState: ui->statusBar->showMessage("Connected to host"); break; case QAbstractSocket::BoundState: ui->statusBar->showMessage("Bound"); break; case QAbstractSocket::ClosingState: ui->statusBar->showMessage("Closing current connection..."); break; case QAbstractSocket::ListeningState: ui->statusBar->showMessage("Listening..."); break; } */ }
[Main Instruction] Com2tcP.exe has stopped working
[Content] Windows is checking for a solution to the problem...
[Cancel]
Если в дебагере смотреть, то
--------------------------- Получен сигнал --------------------------- <p>Приложение остановлено, так как оно получило сигнал от операционной системы.<p><table><tr><td>Сигнал: </td><td>SIGSEGV</td></tr><tr><td>Назначение: </td><td>Segmentation fault</td></tr></table> --------------------------- ОК ---------------------------
Кстати, вопрос - а это вообще умно - перебирать все стейты в свитче? У ошибок есть метод .toString(), а вот у состояний - нету. Может как-то можно его без switch привести к виду строки?
А я не умею (( Unhandled exception at 0x6a15b15b in Com2tcP.exe: 0xC0000005: Access violation reading location 0x00000129.
Происходит при вызове statusBar->showMessage();
Я подозреваю, что дело в том, что параметр должен быть const, а я передаю не const. Сейчас еще потуплю немного. Строки для меня это самое гадкое после указателей....
Добавлено спустя 1 час 2 минуты 17 секунд: Вот у чувака такая же проблема, я два раза прочитаел, так и не понял - решил он ее или нет и если да, то как??? http://www.prog.org.ru/topic_7224_0.html
Еще раз, в конструкторе главного окна создаю и инициализирую субстанцию QStatusBar, определяю его как статусбар главного окна, вывожу на него пустое сообщение, потом вывожу "Disconnected". Работает.
Телепатирую. socketStatusBar у тебя объявлен как член класса MainWindow, а в конструкторе ты создаешь локальную переменную socketStatusBar. socketStatusBar - член класса MainWindow остается неинициализированным, а ты к нему обращаешься.
blindman писал(а):Телепатирую. socketStatusBar у тебя объявлен как член класса MainWindow, а в конструкторе ты создаешь локальную переменную socketStatusBar. socketStatusBar - член класса MainWindow остается неинициализированным, а ты к нему обращаешься.
Уверен что так и есть Но я уже окончательно запутался, что делаеть? Не объявлять членом класса?
Добавлено спустя 1 минуту 2 секунды: ЙЕЕЕЕЕЕЕЕЕСССС Спасибо ))) Оно и было
Добавлено спустя 32 секунды: Правда оно теперь не работает, но это мелочи Зато не вылетает ))
Добавлено спустя 3 минуты 6 секунд: хе хе хе, работает
А как подключить репозиторий ORFA терминала? Mercurial установил, создал хранилище, все опции mercurial в меню инструменты qt creator'а продолжают быть серыми, недоступными?
Добавлено спустя 3 минуты 11 секунд: Похоже бился я с коммитом через то, что центральный репозиторий в самом начале не склонировал. Правда пока не понял, как это сделать, но вечером, похоже, надо будет хранилища пересоздавать...
Добавлено спустя 7 минут 55 секунд: "ААААА!!! Ошибка! Да, кстати, видите сообщение? То, в котором написано используйте ключ -f для принудительного проталкивания (use push -f to force)? Это ужасный совет. Никогда и ни за что не используйте ключ -f. Вы пожалеете о том, что использовали его. Просто поверьте мне в данный момент."
Люди, помогите наладить репозиторий Mercurial в QT. Захожу в меню "Система контроля версий"->Mercurial. Активен только один пункт - Создать хранилище. Выбираю папку, там автоматически создается папка .hg, т.е. хранилище создано. После этого ничегошеньки не меняется. В меню точно также активен отлько один пункт - создать хранилище. При попытке создать его в той же папке, говорит что там уже есть хранилище и предлагает отказаться.
Что делать?
ЙЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕС, нашел в хелпе тудыть его растудыть. Надо выбрать меню файл, создать НОВЫЙ ПРОЕКТ (логично, да?), выбрать "из системы контроля версий", дальше все интуитивно...