Прямоугольники SFML, расположенные в сетке 3x3, появляются только в нижней части окна - почему они не станут выше?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Прямоугольники SFML, расположенные в сетке 3x3, появляются только в нижней части окна - почему они не станут выше?

Сообщение Anonymous »

Я новичок в C ++ и изучаю SFML, сделав простой пользовательский интерфейс калькулятора. Я пытаюсь создать 9 кнопок, расположенных в сетке 3x3, используя вложенные для петель, где каждая кнопка представляет собой белый прямоугольник. Я хочу, чтобы кнопки расположены в рядах и столбцах, но они сложены вертикально внизу. < /P>
Я не уверен, что делаю не так. Вот мой код: < /p>
#include
#include

int main() {
sf::RenderWindow window(sf::VideoMode(600, 400), "Calculator");
std::vector buttons;

float btnWidth = 150.f;
float btnHeight = 100.f;
float marginX = 0.f;
float marginY = 100.f;
float startX = 0.f;
float startY = 300.f;

for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 3; ++col) {
sf::RectangleShape button(sf::Vector2f(btnWidth, btnHeight));
button.setPosition(
startX + col * (btnWidth + marginX),
startY + row * (btnHeight + marginY)
);

button.setFillColor(sf::Color::White);
button.setOutlineThickness(2);
button.setOutlineColor(sf::Color::Black);

buttons.push_back(button);
}
}

while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
}

window.clear(sf::Color::Black);

for (const auto& button : buttons)
window.draw(button);

window.display();
}

return 0;
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... the-window
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»