我需要能够复制Qwidget,因此我可以复制一个窗口,因为它会在运行时更改.这可能吗?
void Duplicate(QWidget * Show)
{
//I tried...
Qwidget Shw = *Show; //but operator= is private
//and the copy constructor (I think), which is also private
Qwidget Shw(*Show);
//
Shw.Show();
}
Run Code Online (Sandbox Code Playgroud) 我将android SDK解压缩到一个名为"/ usr/android/android-sdk-linux"的文件夹中.我进入"工具/"并双击可执行文件"android",单击"在终端中运行"但没有任何反应.我也点击"运行",但没有任何反应.我在终端(./android命令)中运行它,我得到:
./android: 1: ./android: java: not found
./android: 1: ./android: java: not found
./android: 110: exec: java: not found
Run Code Online (Sandbox Code Playgroud)
那为什么会这样呢?
编辑:以下是结果~$ java
* default-jre
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
* gcj-4.5-jre-headless
* openjdk-7-jre-headless
Run Code Online (Sandbox Code Playgroud) 我试过这个:
int editlength;
int buttonid = 3324; // id to button, the numbers dont mean anything
int editid = 5652; // id to edit
LPTSTR edittxt;
HWND button; // created in wWinmain as a button
HWND edit; // created in wWinMain as an edit control
// LRESULT CALLBACK WindowProc
switch(uMsg)
{
case WM_COMMAND:
if(wParam == buttonid)
{
filedit = GetDlgItem(hwnd, editid); // I tried with and without this
editlength = GetWindowTextLength(filedit);
GetWindowText(filedit, edittxt, editlength);
MessageBox(hwnd, edittxt, L"edit text", 0);
} …Run Code Online (Sandbox Code Playgroud) 如何在单击按钮时在运行时调整全局hwnd变量的大小?
或者只是在运行时调整窗口大小的任何方法.即
HWND hwnd; //global
int buttonid = 250; // an id for a button
//also global
int WINAPI wWinMain(/*blah blah blah */) {
//blah blah blah
hwnd = CreateWindowEx(
0,
L"WindowClass",
L"Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
300, 275,
NULL,
NULL,
hInstance,
NULL
);
HWND mybutton = CreateWindow(
L"BUTTON",
L"Button",
WS_VISIBLE | WS_CHILD | WS_TABSTOP,
14, 13,
250, 200,
hwnd,
(HMENU)buttonid,
hInstance,
NULL
);
//blah blah blah
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lparam) {
switch(uMsg) { …Run Code Online (Sandbox Code Playgroud) 我想画一个滑块的背景.我尝试了这个,但颜色覆盖了整个滑块.这是一个继承的QSlider类
void paintEvent(QPaintEvent *e) {
QPainter painter(this);
painter.begin(this);
painter.setBrush(/*not important*/);
// This covers up the control. How do I make it so the color is in
// the background and the control is still visible?
painter.drawRect(rect());
painter.end();
}
Run Code Online (Sandbox Code Playgroud) 在大多数编码程序中,您可以右键单击该项目并单击"在资源管理器中显示",它会在资源管理器中显示所选项目的文件.你会怎么用QDesktopServices在Qt中做到这一点?(或在QT中的任何方式)
你如何用GDI绘制透明椭圆?我试过SetBkMode()但我仍然得到一个白色的椭圆形bk.
case WM_PAINT:
{
hdc = BeginPaint(hwnd, &ps);
SetBkMode(hdc, TRANSPARENT); // doesnt work
Ellipse(hdc, 0,0,500,500);
EndPaint(hwnd, &ps);
break;
}
Run Code Online (Sandbox Code Playgroud) 为什么插槽Reset()不起作用?我希望按钮"reset"将sider的值重置为零.
class MySlider : public QSlider
{
public:
MySlider(Qt::Orientation orientation, QWidget *parent = 0) : QSlider(orientation parent){}
public slots:
void Reset()
{
this->setValue(0);
}
};
//it doesnt work when i try this
MySlider * Slider = new MySlider(Qt::Horizontal, this);
QPushButton *Reset = new QPushButton(tr("Reset"), this);
connect(Reset, SIGNAL(clicked()), Slider, SLOT(Reset()) );
Run Code Online (Sandbox Code Playgroud) QtreeWidget顶部有一个1.我如何解决它?
这有效......
QToolButton * toolbutton = new QToolButton(this);
//hide before addWidget
toolbutton->hide();
addWidget(toolbutton);
Run Code Online (Sandbox Code Playgroud)
但事实并非如此
QToolButton * toolbutton = new QToolButton(this)
addWidget(toolbutton);
//hide after addWidget
toolbutton->hide();
Run Code Online (Sandbox Code Playgroud)
有没有替代方案,所以我可以在QToolButton添加到QToolBar后实际隐藏?我需要在运行时.
这是一个非常基本的运算符过载问题.说我有这样的课......
class xy
{
public:
double x, y;
XY(double X, double Y) { x = X; y = Y;}
XY operator+(const XY & add) const {
return XY(this->x + add.x, this->y + add.y);
}
XY & operator+=(const XY & add) const {?}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望operator + = do做它应该做的事情(你知道,添加到x和y的当前值).运算符+和运算符+ =的代码不一样吗?
我在这个程序中使用BitBlt时遇到了麻烦.您调整窗口大小,椭圆随之调整大小.当然,使用普通的hdc方法,它是波涛汹涌的.我尝试了BitBlt方法,但这也不起作用(可能是因为我做错了).有人可以解决我的错误吗?感谢名单
bool sizing; //global
case WM_PAINT:
{
RECT rect;
GetClientRect(hwnd, &rect);
hdc = BeginPaint(hwnd, &ps);
mem = CreateCompatibleDC(hdc);
SelectObject(mem, GetStockObject(HOLLOW_BRUSH));
if(sizing)
{
Ellipse(mem,rect.left, rect.top, rect.right, rect.bottom);
}
BitBlt(hdc, rect.left, rect.top, rect.left - rect.right, rect.top -rect.bottom , mem, rect.left, rect.top, SRCCOPY);
DeleteDC(mem);
EndPaint(hwnd, &ps);
break;
}
case WM_SIZE:
sizing = true;
break;
Run Code Online (Sandbox Code Playgroud) 我在xna游戏的update()部分有这个:
while (TouchPanel.IsGestureAvailable)
{
GestureSample gs = TouchPanel.ReadGesture();
switch (gs.GestureType)
{
case GestureType.Flick:
_GameMap.GameCamera.Translate(new Vector2(-gs.Delta.X/2, 0));
//moves the camera by this amount
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但不出所料,当我轻弹没有滚动(如谷歌地球或愤怒的小鸟),它只是一个开始和结束.如何在轻弹中实现滚动?
c++ ×7
qt ×6
winapi ×3
gdi ×2
qwidget ×2
android ×1
c# ×1
class ×1
drawellipse ×1
drawrect ×1
ellipse ×1
gdi+ ×1
geometry ×1
height ×1
java ×1
linux ×1
openurl ×1
overloading ×1
paint ×1
qpainter ×1
qt-signals ×1
qtoolbar ×1
qtreewidget ×1
resize ×1
scroll ×1
slider ×1
smooth ×1
ubuntu ×1
window ×1
xna ×1