我在Windows窗体应用程序中有一个表单,我想在主窗体上显示,关闭它,然后立即显示一个对话框使用MessageBox.Show().但是当显示消息框时,第一个表单仍然显示,并且在我单击消息框上的"确定"之前它不会消失.我试着在表单VisibleChanged事件的事件处理程序中显示消息框,甚至同时调用Refresh()表单和主表单.有没有办法在显示消息框之前确定第一个表单何时完全消失?
编辑:
下面是一些代码,演示了如何显示表单.
static class Program
{
// The main form is shown like this:
static void Main()
{
Application.Run(new MainForm());
}
}
public class Class1
{
// _modalForm is the first form that is displayed that won't fully go away
// when it is closed.
ModalForm _modalForm;
BackgroundWorker _worker;
public Class1()
{
_modalForm = new ModalForm();
_worker = new BackGroundWorker();
_worker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted
}
public void Method1()
{
_worker.RunWorkerAsync();
// The first form …Run Code Online (Sandbox Code Playgroud) 我通常在Windows上编程,但我从学校获得了一个macbook pro,所以我正在尝试为OSX制作一个OpenGL应用程序.我下载并安装了XCode,但我不知道如何获得一个简单的OpenGL应用程序.我不想使用Objective-C,但我绝对不想使用GLUT.有人能指出我正确的方向吗?
我正在研究地图应用程序,需要使用表格,表格和地图中的图形对象来显示数据对象.我正在使用PyQt,但这并不重要,因为这是一个Qt问题而不是Python问题.
如果我只需要表格和表单视图,这将很容易,我只使用Qt模型/视图框架.但是,我需要地图视图来提供仅使用Graphics View框架才真正可用的功能,这实际上是它自己的模型/视图框架,QGraphicsScene充当数据模型.
我可以想到两种方法来做到这一点.一种是从QAbstractItemModel子类化的权威模型开始,将其链接到QAbstractItemView的子类,并从那里生成并更新场景中的QGraphicsItems.这看起来很丑陋,因为我不知道如何通过与QGraphicsItem的交互来处理用户与数据项的交互和更改.
我能想到的另一种方法是将QGraphicsScene视为权威数据源,将数据对象存储在每个QGraphicsItem的.data()属性中.然后,我将QAbstractItemModel子类化并编写它,以便它在数据存储中访问场景中的数据,然后其他视图将其用作模型.我如何将更改传播到场景中的数据直到模型?
无论采取哪种方法,看起来框架都没有处理差距.在模型/视图中,假设所有更改都在模型中进行.在图形视图中,假定所有更改都在场景中进行.
那么你选择哪种方法QAbstractItemModel(权威) - > QAbstractItemView-> QGraphicsScene或者QGraphicsScene(权威) - > QAbstractItemModel->其他视图.你为什么选择一个而不是另一个?你有什么期望?有没有其他人需要弥合Qt的双模型/视图框架之间的差距,你是如何做到的?
我知道iPhone/iOS有多个滚动库(TouchScroll,iScroll),因为它无法支持溢出:???滚动.但是,我不知道(我正在寻找确认)IFRAME也没有真正起作用.似乎iframe不尊重任何给它固定大小的尝试,并且总是只调整其内容的大小.我对此是否正确?是滚动IFRAME以将其置于具有溢出CSS属性设置的块元素内的唯一方法,然后使用如上所述的lib?
我希望能够找到一个名为'test'的元素,根本没有属性.
我怎么能用XPATH呢?
如果我只是查询/test它,test即使使用包含属性的元素也能找到所有元素.
例:
<main>
<test id="test1">txt</test>
<test>txt2</test>
</main>
Run Code Online (Sandbox Code Playgroud)
查询//test将找到我的两个元素.我只想要一个不包含属性的那个.我可以查询,//test[not(@id)]但我想知道是否有一个没有属性的元素的命令.
BlockingCollection.Dispose实际上做了什么?
我有一个内置WinForms按钮的WPF窗口.当我设置窗口的样式时,按钮不会被渲染,但是当未设置窗口样式时,按钮将按原样显示.
窗口Xaml:
<Window x:Class="Telbit.TeStudio.View.Forms.FloatingTestComponentsBrowser"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title="Test Components Browser" Style="{DynamicResource TSHUD}"
SizeToContent="WidthAndHeight" Closing="Window_Closing" >
<Grid Name="windowContent" Height="300" Width="300">
<WindowsFormsHost HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<wf:Button Text="Try" Name="btnTry" MaximumSize="100,25" BackColor="LightGray"/>
</WindowsFormsHost>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是窗口的样式:
<Style x:Key="TSHUD" TargetType="{x:Type Window}">
<Setter Property="ShowInTaskbar" Value="False"/>
<Setter Property="BorderThickness" Value="0px"/>
<Setter Property="AllowsTransparency" Value="True"/>
<Setter Property="WindowStyle" Value="None"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Grid x:Name="LayoutRoot">
<Rectangle Fill="#ED111F29" Stroke="Black" Margin="29,29,29,29" RadiusX="3" RadiusY="3" Effect="{DynamicResource TSWindowShadow}"/>
<Rectangle Name="TSHUDHeader" Stroke="Black" Margin="29,29,29,29" VerticalAlignment="Top" Height="25" RadiusX="3" RadiusY="3">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#ED1F3A45"/>
<GradientStop Color="#EC111F29" Offset="1"/> …Run Code Online (Sandbox Code Playgroud) 我正在运行以下基准测试:
int main(int argc, char **argv)
{
char *d = malloc(sizeof(char) * 13);
TIME_THIS(func_a(999, d), 99999999);
TIME_THIS(func_b(999, d), 99999999);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
通过正常编译,两个函数的结果相同
% gcc func_overhead.c func_overhead_plus.c -o func_overhead && ./func_overhead
[func_a(999, d) ] 9276227.73
[func_b(999, d) ] 9265085.90
Run Code Online (Sandbox Code Playgroud)
但是与-O3他们是非常不同的
% gcc -O3 func_overhead.c func_overhead_plus.c -o func_overhead && ./func_overhead
[func_a(999, d) ] 178580674.69
[func_b(999, d) ] 48450175.29
Run Code Online (Sandbox Code Playgroud)
func_a和func_b定义如下:
char *func_a(uint64_t id, char *d)
{
register size_t i, j;
register char c;
for (i = 0, j = 36; i <= …Run Code Online (Sandbox Code Playgroud) 我希望能够让我的类的运算符以我定义的方式与常规类型进行交互.让我们说,例如,我有:
class Mynum(object):
def __init__(self, x):
self.x = x
def __add__(self, other):
return self.x + other.x
a = Mynum(1)
b = Mynum(2)
print a+b
Run Code Online (Sandbox Code Playgroud)
这很好用,但现在如果我尝试这样做:
print a+2
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,因为int没有一个名为的成员x.我如何在课堂上定义Mynum+ int?这听起来像是装饰者或元类的工作,但我对他们的用法非常不熟悉.这个问题似乎相似,但并不完全相同.