crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V  « < 2 3 4 5 >  
Ответить в данную темуНачать новую тему
> Qt Creator: ошибки в интерфейсе
Алексей1153
  опции профиля:
сообщение 8.10.2010, 7:26
Сообщение #31


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


не ошибка, а наоборот приятная неожиданность: когда просматриваешь список файлов в ресурсе, оттуда скопировать путь фиг как пойми, а, оказывается надо выделить элемент, а потом ctrl+ins (ctrl+c, кто предпочитает) и путь попадает в буфер обмена
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 19.11.2010, 7:42
Сообщение #32


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


сбросил разработчикам ссылку на этот топик. А вдруг ? :)

Цитата(Алексей1153 @ 12.9.2010, 18:05) *
не показывается автодополнение для typedef, например

typedef std::map<int,int> td_ii;

td_ii::<не показывает список>


а также не показывает при отладке значение типов, например
typedef int ttt;
ttt T;
//в окне просмотра переменных значение T будет показано как "тип ttt". Хотя, если сделать (int)T , то значение отобразиться. Но это неудобно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.11.2010, 22:20
Сообщение #33


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


неожиданно взглянул на #define под новым углом :)

к примеру, у меня имеется такой список типов
Раскрывающийся текст
class CElemLibNode;
class CElementWidget;

typedef uint32_t DWORD;

typedef DWORD tdsELEMNUM;
typedef DWORD tdsELEMTYPE;

typedef std::map<tdsELEMNUM,CElementWidget*> td_ElemsList;
typedef std::map<tdsELEMTYPE,CElemLibNode> td_ElemLib;


меняем так
Раскрывающийся текст
//class CElemLibNode;
//class CElementWidget;

#define DWORD  uint32_t

#define tdsELEMNUM       DWORD
#define tdsELEMTYPE      DWORD

#define td_ElemsList           std::map<tdsELEMNUM,CElementWidget*>
#define td_ElemLib             std::map<tdsELEMTYPE,CElemLibNode>


тогда жизнь отладка и написание кода расцветает новыми красками: и тебе в редакторе после "::", ".", "->" начинают списки мемберов показываться, и в отладчике значения переменных видны сразу :)

а вот список мемберов итераторов std при любом раскладе не желает показываться списком в редакторе:

std::map<int,int>::const_iterator it;
it-> //нет списка

Сообщение отредактировал Алексей1153 - 20.11.2010, 22:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 22.11.2010, 11:05
Сообщение #34


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Алексей1153 @ 20.11.2010, 22:20) *
std::map<int,int>::const_iterator it;
it-> //нет списка

извини за глупый вопрос.
у итераторов что operator->() есть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 22.11.2010, 13:34
Сообщение #35


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


kwisp, у map есть, регулярно пользуюсь

std::map::iterator::operator ->()

вот даже скрин ))
Прикрепленное изображение


Собственно, у вектора тоже есть.

Сообщение отредактировал Алексей1153 - 22.11.2010, 13:56
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 22.11.2010, 14:47
Сообщение #36


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Алексей1153 @ 22.11.2010, 13:34) *
Собственно, у вектора тоже есть.

круто.
честно скажу не знал. прям стыдно как-то.
а по поводу typedef и define - с typedef не только у creator`а проблема. semantic для emacs тоже с typedef плохо дружит.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 22.11.2010, 14:50
Сообщение #37


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(kwisp @ 22.11.2010, 16:47) *
а по поводу typedef и define - с typedef не только у creator`а проблема. semantic для emacs тоже с typedef плохо дружит

ну это же грустно. Ругали, ругали мелкософт, а студия-то вона как меня избаловала отладчиком и редактором :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.1.2011, 19:02
Сообщение #38


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


какой-то непонятный глюк компилятора, иначе не могу объяснить
в классе, произведённом от QPushButton имеется мембер

public:
QString m_textcolor;


затем, в любом методе пишем

QBrush brush(QColor(m_textcolor));
brush.setStyle(Qt::SolidPattern);


и начинается ругань
Цитата
error: request for member 'setStyle' in 'brush', which is of non-class type 'QBrush(QColor)'


Лечится указанием this

    QBrush brush(QColor(this->m_textcolor));
    brush.setStyle(Qt::SolidPattern);



Поэкспериментировал - мембер ни при чём. Если указать строковую константу - всё ок, если QString (даже локальную переменную), начинается бодяга. В случае с локальной не лечится никак

Сообщение отредактировал Алексей1153 - 24.1.2011, 19:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 24.1.2011, 20:26
Сообщение #39


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Цитата(Алексей1153 @ 20.11.2010, 22:20) *
неожиданно взглянул на #define под новым углом

дефайны зло. имхо их следуент избегать при любых обстоятельствах. Сам пользуюсь и std::map, set, vector.... Автодополнения нет.. И тоже относится к например всяким std::auto_ptr. Неудобно, да. Но ради этого дефайны я бы все равно не стал использовать.

Цитата(Алексей1153 @ 24.1.2011, 19:02) *
какой-то непонятный глюк компилятора, иначе не могу объяснить
в классе, произведённом от QPushButton имеется мембер

А если написать
const QString textcolor = "red";

Все равно ругань? (щас не могу проверить)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.1.2011, 20:29
Сообщение #40


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


И ещё один баг: во встроенном редакторе форм креатора, когда кладём элемент на форму, а потом делаем преобразование штатного виджета в свой класс через контекстное меню, ВАЖНО учитывать регистр символов заголовочного файла класса.

для винды от этого последствий никаких, а вот под линуксом начинается веселуха. Дело в том, что неправильный регистр попадает, само собой, в XML *.ui, затем в ui_*.h . Во время компиляции линуксовый компилятор не может найти файл заголовочника из-за того, что регистр символов разный.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

5 страниц V  « < 2 3 4 5 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


14 чел. читают эту тему (гостей: 14, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.12.2024, 10:04