Russian Qt Forum
Апрель 25, 2024, 11:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 119 120 [121] 122
1801  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 20:22
Bepec вот:
Код:
    QTableWidget *table = new QTableWidget;
    table->setRowCount(9);
    table->setColumnCount(9);

    QTableWidgetItem *item = table->item(1, 1);
    item->setText("");
1802  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 19:15
Народ, а в чем тут ошибка??
Код:
    
QTableWidgetItem *item = table->item(0, 0);
item->setText("");

при выполнение этого кода происходит ошибка, не при компиляции
1803  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 18:56
Похоже, если я захочу закрашивать или прикреплять картинку к отдельную ячейке, придется переопределять paintEvent, или делать делегат
1804  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 18:32
Как то уж мудренно выглядит Грустный
не очень хочется делать наследование, потом переопределение...
жаль что в этом классе нет метода, который бы сам делал resize таблицы и ячеек Улыбающийся
1805  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 18:12
Bepec, я просто указал их начальный размер, а не фиксированный Улыбающийся
и если и убрать этот цикл, то ячейки просто станут прямоугольными но при этом ничего не изменится  Грустный
1806  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 18:05
Учитывая советы которые мне дали сделал следующее:

Код:
    const short N = 9;

    QTableView *tableView = new QTableView();

    QTableWidget *table = new QTableWidget;
    table->setRowCount(N);
    table->setColumnCount(N);

    tableView->setModel(table->model());

    tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
    tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    tableView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    tableView->verticalHeader()->hide();
    tableView->horizontalHeader()->hide();

    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
        {
            tableView->setRowHeight(i, 40);
            tableView->setColumnWidth(j, 40);
        }

    QWidget *window = new QWidget();
   
    QVBoxLayout *mainVLayout = new QVBoxLayout();
    mainVLayout->addWidget(tableView);
   
    window->setLayout(mainVLayout);
    window->show();

только вот компоновщик не оправдал моих ожиданий: думал что размер таблицы, теперь зависит от размера виджета, и при этом ячейки будут тоже менять размер.
1807  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 17:49

Хочу сделать что то вроде такого =)
1808  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 17:36
можно
kambala, а как?? Улыбающийся Улыбающийся
1809  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 17:19
Я вот не знаю, а можно сделать так, чтобы для отдельной ячейки таблицы можно было выбрать цвет/картинки??
1810  Qt / Пользовательский интерфейс (GUI) / Re: Программная разработка доски Судоку : Май 30, 2012, 17:16
Alatey, спасибо что напомнили о том что есть возможность переопределить событие изменения размера виджета)

Знаете, Bepec я с QTableView и с самими таблицами в qt очеень мало работал: только для отображения таблицы после отправления запроса в sql и все! И если бы вы показали код в котором QTableView помог бы в решении моей проблемы было бы очень хорошо Улыбающийся Да и на наглядном примере лучше понимается Веселый
1811  Qt / Пользовательский интерфейс (GUI) / [РЕШЕНО] Программная разработка доски Судоку : Май 30, 2012, 15:47
Здравствуйте, форумчане! Улыбающийся
Мне как любителю игры судоку, захотелось написать ее)
только в разработке форм приложений я знаю самые основы: компоновщики, сплитеры, различные виджеты и т.д.
А вот контролировать поведение отдельного виджета, помещенного скажем в компоновку я и не представляю.

Написал небольшой пример, создающий поле судоку, в качестве ячеки взял push button:
Код:
    const short N = 9;
    QGridLayout *gridBoard = new QGridLayout();
    QPushButton *cell[N][N];

    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
        {
            cell[i][j] = new QPushButton();
            cell[i][j]->resize(40, 40);
            gridBoard->addWidget(cell[i][j], i, j);
        }

    QWidget *sudokuBoard = new QWidget();
    sudokuBoard->setLayout(gridBoard);
Все работает, только вот кнопки получаются не квадратными, можно было конечно зафиксировать их размер, но и это не годится - хотелось бы чтобы они могли пропорционально увеличиваться/уменьшать, если размер окна менялся.

Кроме этого расстояние между кнопками слишком большое, и хотелось бы чтобы как в судоку это поле можно было разделить на 9 квадратов, в каждом по 9 ячеек, и чтобы было небольшое расстояние между этими квадратами.

Теперь перейду к сути написания темы:
Подскажите/покажите как лучше и удобнее решить эту задачу: Улыбающийся (Какие виджеты лучше использовать для создания поля, какие в качестве ячеек и т.д. и т.п.)

и убедительная просьба:
не надо писать чтобы воспользовался поиском на сайте - уже делал Смеющийся
1812  Программирование / С/C++ / Re: Негативная конверктация регистра символа : Май 08, 2012, 21:06
Alex Custov, спасибо, вы абсолютно правы =)
Igors, спасибо за рабочий вариант =) и без replace() можно обойтись))
1813  Программирование / С/C++ / [РЕШЕНО] Негативная конверктация регистра символа : Май 08, 2012, 20:39
Здравствуйте! =)
Решил написать конвертор регистра символов.
Идея проста: окно, на нем два виджета TextEdit(окно ввода (1) и окно вывода (2)) и
три кнопки QPushButton
Первая кнопка переводит текст в верхний регистр: был: "машина - CAR", стал: "МАШИНА - CAR",
Вторая кнопка переводит текст в нижний регистр
А третья переводит негативно - в зависимости от регистра символа:
был: "Hello World!", стал: "hELLO wORLD!"

для первой и второй кнопки не нужно было придумывать алгоритм - Qt уже об этом позаботился
для третьей я придумал такой код:
Код:
QString makeConvertNegative(QString InputString)
{
    QString temp = InputString;
    for(int i = 0; i < temp.size(); i++)
    {
        if(temp.at(i).isLower())
        {
            temp.replace(temp.at(i), temp.at(i).toUpper(), Qt::CaseSensitive);
        }else
        {
            temp.replace(temp.at(i), temp.at(i).toLower(), Qt::CaseSensitive);
        }
    }
    return temp;
}

Этот алгоритм работает просто:
проверяем регистр каждого символа строки и вставляем на его место символ с противоположным регистром

Но! Этот алгоритм не все регистры символов переводит негативно, точнее если вводить по одному символу и конверктировать, то работает.

Помогите понять в чем ошибка, и "ткнуть пальцем" на нее  Смеющийся
1814  Программирование / С/C++ / Re: Получение изображения текущего курсора : Апрель 29, 2012, 21:40
Извиняюсь, я ошибся, с оценкой того кода, не знаю почему но компилятор, не хотел работать пока не убрал функции GetObject, даже учитывая что и библиотеку я для них подключил.
Тема закрыта. Улыбающийся
1815  Программирование / С/C++ / Re: Получение изображения текущего курсора : Апрель 29, 2012, 21:36
http://www.prog.org.ru/topic_21053_0.html

здесь находится тема, которая могла помочь, но код с ошибками
Страниц: 1 ... 119 120 [121] 122

Страница сгенерирована за 0.06 секунд. Запросов: 23.